php websocket转发到nodejs [英] php websocket forwarding to nodejs
问题描述
我想在 php 中创建一个适配器,以便将消息从 javascript 客户端转发到 nodejs 服务器,反之亦然.
im tring to create an adapter in php to forward messages from javascript client to nodejs server and vice versa.
nodejs 服务器:ws
nodejs server: ws
php 服务器:RatchetPHP
php 客户端:RatchetPawl
php 中的 websocket 服务器:chatWSServer.php
websocket server in php: chatWSServer.php
连接类:connection.php
javascript 客户端:
javascript client:
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 服务器(本地主机:8889)的连接,在 javascript 客户端连接到 php websocket 服务器(本地主机:9000)上:chatWSServer.php - createConnection()及其工作,但是当 javascript 客户端尝试发送消息时,我得到了:
Problem:
i try to open a connection to the nodejs websocket server (localhost:8889), on javscript client connection to php websocket server (localhost:9000): chatWSServer.php - createConnection() and its working, but when the javascript client try to send a message i get:
无法在WebSocket"上执行发送":仍处于连接状态.
Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
我认为这是因为棘轮棘爪连接器循环正在运行 - 当我评论:loop->run()
客户端能够发送消息.
i think its because ratchet pawl connector loop is running - when i comment: loop->run()
the client is able to send messages.
推荐答案
在 @WyriHaximus 的帮助下,我设法解决了这个问题.
with the help from @WyriHaximus i managed to solve this.
我创建了一个与棘轮 websocket 服务器循环相同的循环的棘轮爪 websocket 客户端.现在它是非阻塞的!
ive created a ratchetpawl websocket client with the same loop as ratchet websocket server's loop. and now its non blocking!
查看我的代码库解决方案.
see my repository for code solution.
这篇关于php websocket转发到nodejs的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!