【发布时间】:2017-01-06 13:30:17
【问题描述】:
我目前正在尝试向我的 socket.io 服务器提供来自我的 C# 客户端的数据。但是我不确定如何在服务器上接收消息。
我的服务器代码:
const io = require('socket.io')(9000);
io.on('connection', (socket) => {
console.log('Connected');
}
首先我不知道我必须听哪个事件,但是我无法使用以下客户端(使用 Websocket-sharp)代码向我的服务器发送数据:
private void init()
{
// start socket connection
using (var ws = new WebSocket("ws://localhost:9000/socket.io/?EIO=2&transport=websocket"))
{
ws.OnMessage += (sender, e) =>
API.consoleOutput("Message: " + e.Data);
ws.OnError += (sender, e) =>
API.consoleOutput("Error: " + e.Message);
ws.Connect();
ws.Send("server");
}
}
连接正常,但我如何接收服务器的消息?发送不会引发错误,因此我认为它确实有效。
【问题讨论】:
-
我认为,您的连接不工作,因为
socket.io不完全使用websocket协议。所以,c#websocket客户端无法与node.jssocket.io服务器通信。或许,你可以试试github.com/Quobject/SocketIoClientDotNetc#socket.io客户端。 -
还没有找到那个。只有一个过时的。稍后会尝试。
-
我不确定
SocketIoClientDotNet的维护,但我可以肯定地说websocket-sharp不能直接用于与socket.io服务器通信。 github.com/sta/websocket-sharp/issues/81#issuecomment-104650660 -
SocketIoClientDotNet不断重新连接并且不会触发本地Socket.EVENT_CONNECT事件。似乎也不起作用。
标签: c# node.js websocket socket.io