本地创建一个Worker 代理监听本地2346端口,使用websocket协议通讯 怎么长连接监听这个数据?

641221621

1.php 文件代码如下

<?php
use \Workerman\Worker;
require_once __DIR__ . '/../../Workerman/Autoloader.php';

$ws_worker = new Worker("websocket://0.0.0.0:2346");  // 创建一个Worker 代理监听本地2346端口,使用websocket协议通讯

$ws_worker->onMessage = function($connection, $data)
{
    // 向客户端发送hello $data
    var_dump($data);
    $connection->send('hello ' . $data);
};

if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

2.php 文件如下

use \Workerman\Worker;
use \Workerman\Connection\AsyncTcpConnection;
require_once __DIR__ . '/../../Workerman/Autoloader.php';

$task = new Worker();
// 进程启动时异步建立一个到www.baidu.com连接对象,并发送数据获取数据
$task->onWorkerStart = function($task)
{
    $connection_to_baidu = new AsyncTcpConnection('tcp://127.0.0.1:2346');

    //onMessage  当有客户端的连接上有数据发来时触发
    $connection_to_baidu->onMessage = function($connection_to_baidu, $http_buffer)
    {
        //echo json_encode($http_buffer);
        //echo $http_buffer;
    //$connection_to_baidu->send('hello ' .$http_buffer);
    var_dump('1111111111');  var_dump($http_buffer);
    };
// 运行worker
Worker::runAll();

请问大大 如何让2.php 长连接到 1,php 后 并接收到 来自1.php 的数据呢?????

我测试了两天了 都接不到数据呢????

帮帮忙看看哦! 谢谢了!!

4703 2 0
2个回答

641221621

搞定了 是协议不对 呵呵

协议改成

tcp

就可以了

  • 暂无评论
walkor

好的

  • 暂无评论
年代过于久远,无法发表回答
🔝