qqlight-websocket
qqlight-websocket copied to clipboard
C#作为客户端连接,老是报被远程连接中断,是个什么情况和原因啊?
日志显示“Connection close frame” 能接收一阵子数据,然后断掉
代码如下
//todo 接受推送过来的消息和事件,在这里面进行解析和分发
async void StartReceiving(ClientWebSocket client)
{
while (true)
{
var array = new byte[4096];
WebSocketReceiveResult result = await client.ReceiveAsync(new ArraySegment
if (result != null)
{
if (result.MessageType == WebSocketMessageType.Text)
{
string msg = Encoding.UTF8.GetString(array, 0, result.Count);
Console.ForegroundColor = ConsoleColor.DarkBlue;
Console.WriteLine("--> {0}", msg);
Console.ForegroundColor = ConsoleColor.DarkGray;
//todo 对消息进行解析,事件分发
JObject msgobj = (JObject)JsonConvert.DeserializeObject(msg);//或者JObject jo = JObject.Parse(jsonText);
switch (msgobj["event"].ToString())
{
case "message":
recieveMsgEvent(msgobj);
break;
case "friendRequest":break;
case "friendChange":break;
case "groupMemberIncrease":break;
case "groupMemberDecrease":break;
case "adminChange":break;
case "groupRequest":break;
case "receiveMoney":break;
}
}
}
}
}
await client.CloseOutputAsync(WebSocketCloseStatus.Empty,"",CancellationToken.None)
这句的作用是什么
await client.CloseOutputAsync(WebSocketCloseStatus.Empty,"",CancellationToken.None)
这句的作用是什么
这句是关闭异步的貌似,但是我之前没写这句也是一样的;会被远程断开连接
看日志应该是客户端主动请求关闭的,你需要自己检查一下代码是否有问题
看日志应该是客户端主动请求关闭的,你需要自己检查一下代码是否有问题
估摸着是的,就是现在还不知道错在哪个地方 感谢🙏
是不是发心跳包了,一发就会断开连接,禁掉就不会了
是不是发心跳包了,一发就会断开连接,禁掉就不会了
那可能是我代码有问题,有空我看看
是不是发心跳包了,一发就会断开连接,禁掉就不会了
方便给个心跳包这块的处理example?我这边刚接触c#,有点拿他没办法
是不是发心跳包了,一发就会断开连接,禁掉就不会了
方便给个心跳包这块的处理example?我这边刚接触c#,有点拿他没办法
不熟悉c#,我用的aardio,