无法从websocket服务器接收消息

时间:2016-07-26 14:51:50

标签: c# node.js websocket

我不知道为什么我无法接收从服务器发送的数据。

服务器是使用https://github.com/websockets/ws在node.js中编写的,我使用他们的示例来设置服务器。这是我发送数据的方式:

wss.on('connection', function connection(ws) {

   ws.on('open', function (){
   ws.send('You are logged');
   })

   ws.send('something');
});

这是我使用ClientWebSocket

在c#中接收数据的方式
public static async Task ReceiveData(ClientWebSocket ws)
    {
        ArraySegment<Byte> buffer = new ArraySegment<byte>(new Byte[8192]);

        WebSocketReceiveResult result = null;
        while (ws.State == WebSocketState.Open)
           {
               using (var ms = new MemoryStream())
               {
                    do
                    {
                        result = await ws.ReceiveAsync(buffer, CancellationToken.None);
                        ms.Write(buffer.Array, buffer.Offset, result.Count);
                     }
                     while (!result.EndOfMessage);

                     ms.Seek(0, SeekOrigin.Begin);

                    using (var reader = new StreamReader(ms, Encoding.UTF8))
                         Console.WriteLine( reader.ReadToEnd());
              }
           }
    }

问题是我收到一次“某事”。我的目标是我希望每秒都收到“你被记录”这个消息吗?

编辑:澄清......问题是ws.on('open',..)内的消息由于某种原因没有被发送?

感谢您的时间:)

1 个答案:

答案 0 :(得分:0)

ws.on('open', function (){
    ws.send('You are logged'); 
    var timer = setInterval(function() {
        if (ws) 
            ws.send('You are logged');
        else
            clearInterval(timer);
    }, 1000);
});