将.NET WebSockets客户端连接到node.js socket.io服务器

时间:2018-07-20 23:42:35

标签: c# .net websocket socket.io .net-4.6

我目前正在支持一个较旧的应用程序,该应用程序具有一个具有socket.io(v1.3.7)连接的node.js(v0.12.13)服务器。该服务器很好地支持浏览器客户端。

socket.attach(http, { 'transports': ['polling','websocket'], 'allowUpgrades': true });
socket.attach(https, { 'transports': ['polling','websocket'], 'allowUpgrades': true });
socket.sockets.on('connection', function (socket) {
    // Process stuff here
});

我们的要求还要求我们允许旧版Windows应用程序连接到节点服务器,并且我已经使用过SocketIoClientDotNet / EngineIoClientDotNet,这或多或少可以正常工作(对于某些{{3} },我需要处理)。

所以我想我会尝试基于exceptions使用.NET ClientWebSocket方法,其中uri =“ ws://10.10.5.112”:

static async Task Connect(string uri)
{
    ClientWebSocket sock = new ClientWebSocket();
    await sock.ConnectAsync(new Uri(uri), CancellationToken.None);
}

但是我得到以下例外:

System.AggregateException
  HResult=0x80131500
  Message=One or more errors occurred.
  Source=mscorlib
  StackTrace:
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at WebsocketClientTest.Program.Main(String[] args) in C:\Source\test\WebsocketClientTest\Program.cs:line 16

Inner Exception 1:
WebSocketException: Unable to connect to the remote server

Inner Exception 2:
WebException: The underlying connection was closed: The connection was closed unexpectedly.

当然,我没有看到服务器上的任何连接尝试,但是Wireshark告诉我.Net应用程序正在尝试启动连接,但没有收到node.js服务器的响应。看起来在socket.io方面是失败的,但是任何能帮助我的想法都值得赞赏。

this article

0 个答案:

没有答案