问题:按照TP5手册文档中的指导部署,服务端脚本应该是正常运行了,但是浏览器里JS连接不上。监听地址127.0.0.1、0.0.0.0、47.xxx.xxx.57(服务器IP地址)都试了个遍,都不行,脑瓜子嗡嗡的
环境信息:
1.框架TP5.0.24,workerman3.5.31
2.PHP5.6.40
3.Linux+宝塔
4.测试开放端口【2222】
其他信息:
服务端执行命令【php server.php start】结果如下
workercontroller.php代码
<?php
namespace app\push\controller;
use think\worker\Server;
class WorkerController extends Server
{
protected $socket = 'websocket://127.0.0.1:2222';
/**
* 收到信息
* @param $connection
* @param $data
*/
public function onMessage($connection, $data)
{
$connection->send('服务器能收到,你能不能收到呢?');
}
/**
* 当连接建立时触发的回调函数
* @param $connection
*/
public function onConnect($connection)
{
print_r('open and welcome');
}
/**
* 当连接断开时触发的回调函数
* @param $connection
*/
public function onClose($connection)
{
print_r('bye bye, see you next time');
}
/**
* 当客户端的连接上发生错误时触发
* @param $connection
* @param $code
* @param $msg
*/
public function onError($connection, $code, $msg)
{
echo "error $code $msg\n";
}
/**
* 每个进程启动
* @param $worker
*/
public function onWorkerStart($worker)
{
print_r('working...');
}
}
JS代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试页面</title>
</head>
<body>
<script type='text/javascript'>
ws = new WebSocket("ws://47.***.***.57:2222");
// ws = new WebSocket("ws://127.0.0.1:2222");
ws.onopen = function() {
alert("连接成功");
ws.send('tom');
alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
alert("收到服务端的消息:" + e.data);
};
</script>
</body>
</html>
server.php代码:
#!/usr/bin/env php
<?php
define ('APP_PATH', __DIR__ . '/application/');
define ('BIND_MODULE', 'push/Worker');
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';
composer.json