php websocket转发到nodejs
Posted
技术标签:
【中文标题】php websocket转发到nodejs【英文标题】:php websocket forwarding to nodejs 【发布时间】:2018-09-07 10:38:37 【问题描述】:我想在 php 中创建一个适配器,将消息从 javascript 客户端转发到 nodejs 服务器,反之亦然。
WebSockets:
nodejs 服务器:ws
php 服务器:RatchetPHP
php客户端:RatchetPawl
代码:
php 中的 websocket 服务器:chatWSServer.php
连接类:connection.php
javascript 客户端:
connection = new WebSocket('ws://localhost:9000');
connection.onmessage = (e) =>
console.log(e.data);
connection.onopen = (e) =>
console.log("connection established!");
connection.addEventListener('message', (resData) =>
console.log("got message:", resData);
);
问题:
我尝试打开到 nodejs websocket 服务器的连接 (localhost:8889), 在 javscript 客户端连接到 php websocket 服务器(本地主机:9000): chatWSServer.php - createConnection() 及其工作, 但是当 javascript 客户端尝试发送消息时,我得到:
在“WebSocket”上执行“发送”失败:仍处于 CONNECTING 状态。
我认为这是因为棘轮棘爪连接器循环正在运行 - 当我评论时:loop->run()
客户端能够发送消息。
【问题讨论】:
【参考方案1】:在@WyriHaximus 的帮助下,我设法解决了这个问题。
我创建了一个ratchetpawl websocket 客户端,其循环与ratchet websocket 服务器的循环相同。现在它是非阻塞的!
查看我的代码库以获取代码解决方案。
【讨论】:
以上是关于php websocket转发到nodejs的主要内容,如果未能解决你的问题,请参考以下文章
如何实现从 Redis 中订阅消息转发到 WebSocket 客户端
如何配置 nginx 以将 websocket 转发到不同的进程
Nginx 作为 websockets 和 post 请求的转发代理