TP5.0中的workerman使用无法连接?

新手上路,请多包涵

问题:按照TP5手册文档中的指导部署,服务端脚本应该是正常运行了,但是浏览器里JS连接不上。监听地址127.0.0.1、0.0.0.0、47.xxx.xxx.57(服务器IP地址)都试了个遍,都不行,脑瓜子嗡嗡的
image.png
环境信息:
1.框架TP5.0.24,workerman3.5.31
2.PHP5.6.40
3.Linux+宝塔
4.测试开放端口【2222】
其他信息:
服务端执行命令【php server.php start】结果如下
image.png
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
image.png

阅读 973
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题