我不知道为什么我无法接收从服务器发送的数据。
服务器是使用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',..)内的消息由于某种原因没有被发送?
感谢您的时间:)
答案 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);
});