这里写描述
在客户端发消息时,服务端在onmessage函数打印连接对象为空,并且onWorkerStart进程启动时打印worker中connections为空数组,这是为啥
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
// 使用websocket协议监听8282端口
$worker = new Worker('websocket://0.0.0.0:8282');
// 当浏览器(包括用户手机浏览器和电脑浏览器)发来消息时的处理逻辑
$worker->onMessage = function(TcpConnection $connection, $data)
{
var_dump($data);
$connection->send(json_encode($connection));
};
// 进程启动时设置一个定时器,定时向所有客户端连接发送数据
// $worker->onWorkerStart = function($worker)
// {
// echo json_encode($worker);
// 遍历当前进程所有的客户端连接,发送当前服务器的时间
// for($a=0;a<count($worker->connections);a++){
// $worker->connections[$a]->send(time());
// }
// };
Worker::runAll();
打印连接对象用
var_dump($connection);
,不是所有对象都支持json_encode序列化。onWorkerStart是进程启动时就执行,这时候还没有任何客户端连到服务上,所以
$worker->connections
为空。顺便有个小小的请求,老版的社区内有相关的“视频教程”,请问还有相关的地址吗?
http://video.workerman.net/
那我这边在onmessge里面要怎么才能拿到全部连接对象发消息呀
手册 https://www.workerman.net/doc/workerman/faq/how-to-broadcast.html
好,谢谢,照着这个解决了