首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
websocket 在task里面调用push方法报错
websocket,里面用onmessage方法收到了信息,希望循环通知给所有人, onmessage 方法里面有这样一句: $this->serv->task(['fd'=>$fd,'send'=>$frame->data]); 然后task方法是这样的: public function task($_server, $worker_id, $task_id, $data){ $_server->push($data['fd'], $data['send']); var_dump($worker_id, $task_id, $data); return "执行完毕\n"; } 执行的时候会报错: PHP Warning: swoole_websocket_server::push(): connection[1] is not a websocket client. in /alidata/www/swoole/websocket/WebSocketServer.php on line 149 求解决方案!!!
发布于9年前 · 0 次浏览 · 来自
提问
雨
雨过风霜叶
websocket,里面用onmessage方法收到了信息,希望循环通知给所有人, onmessage 方法里面有这样一句: $this->serv->task(['fd'=>$fd,'send'=>$frame->data]); 然后task方法是这样的: public function task($_server, $worker_id, $task_id, $data){ $_server->push($data['fd'], $data['send']); var_dump($worker_id, $task_id, $data); return "执行完毕\n"; } 执行的时候会报错: PHP Warning: swoole_websocket_server::push(): connection[1] is not a websocket client. in /alidata/www/swoole/websocket/WebSocketServer.php on line 149 求解决方案!!!
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-10-15
l
loncool
这个错误信息表示fd 1不是WebSocket连接,所以不能向它推送数据。
赞
0
回复
2017-10-28
痞
痞子
要如何检查 fd 是有效的?
赞
0
回复
2017-10-28
K
Kennethquard
http://wiki.swoole.com/wiki/page/490.html 通过使用$server->connection_info获取连接信息,返回的数组中有一项为 websocket_status,根据此状态可以判断是否为WebSocket客户端。 @paza
赞
0
回复