首页 新闻 会员 周边

关于SignalR的问题

0
悬赏园豆:5 [已解决问题] 解决于 2020-11-24 16:08

客户端采用的是[WinForm] ,服务端[Asp.Net MVC]

功能描述

  • 服务端发起请求至客户端,客户端负责给数据加签,然后输出数据至指定服务器

问题:

  • 客户端开启一段时间后,会有收不到服务端请求的时候,但客户端未断开连接,感觉像假死的状态,没有断开连接,但服务器发起请求时,客户端无反应,第一次使用SignalR不清楚问题在哪?还请大家帮帮忙,谢谢了
释通明的主页 释通明 | 初学一级 | 园豆:160
提问于:2020-09-21 15:30
< >
分享
最佳答案
0

winform 如何與server 建立連線的

收获园豆:4
RosonJ | 老鸟四级 |园豆:4910 | 2020-09-21 15:33

winform使用的HUB连接模式

hubConnetion = new HubConnection(textBox1.Text);
hubConnetion.Start().ContinueWith……

服务端代码

hubContext.Clients.All.getClientSignData(base64Str);
释通明 | 园豆:160 (初学一级) | 2020-09-21 15:40

@释通明:
有特別設定DisconnectTimeout 和KeepAlive 嗎?

RosonJ | 园豆:4910 (老鸟四级) | 2020-09-21 15:51

@RosonJ: 没有的,没有特别操作,刚接触SignalR

释通明 | 园豆:160 (初学一级) | 2020-09-21 15:52

@释通明:
寫StateChanged 觀察下狀況

RosonJ | 园豆:4910 (老鸟四级) | 2020-09-21 16:02

@RosonJ: 好的,我研究下,另外多问一下,一般会在什么情况下出现我说的这种情况?之前没遇到过有些懵

释通明 | 园豆:160 (初学一级) | 2020-09-21 16:05

@释通明:
正常情況下不會
頂多是ConnectionSlow
StateChanged 事件之外再加個ConnectionSlow 事件
試試能否鎖定異常原因

RosonJ | 园豆:4910 (老鸟四级) | 2020-09-21 16:08

@RosonJ: 好的,谢谢了,我这边研究下

释通明 | 园豆:160 (初学一级) | 2020-09-21 16:10
其他回答(1)
0

重写断开事件。

收获园豆:1
forhells | 园豆:724 (小虾三级) | 2020-09-21 15:57

找下断线重连。

支持(0) 反对(0) forhells | 园豆:724 (小虾三级) | 2020-09-21 15:58

没有断开,就像假死状态一样,没断开,但就是收不到服务端的推送

支持(0) 反对(0) 释通明 | 园豆:160 (初学一级) | 2020-09-21 15:58

@forhells: 一般会在什么情况下出现我说的这种情况?想找到根源

支持(0) 反对(0) 释通明 | 园豆:160 (初学一级) | 2020-09-21 16:03

@释通明: 原因很多。比如说运营商路由设置导致。其实就是中断了。因为有好几个事件是要自己监控的。
不知道你用的是那个版本。
比如像最新的.net core的版本。客户端。
connection = new HubConnectionBuilder()
.WithUrl(CustomerConfig.Instance.publicserverurl)
.WithAutomaticReconnect()
.Build();

        connection.Closed += async (error) =>
        {
            Log.Logger.Error(error.ToString());
            await Task.Delay(3000);
            await ConnectAsync();
        };

        connection.Reconnected += async connectionId =>
        {

//重连事件处理
};
private async Task ConnectAsync()
{
await connection.StartAsync(token);//
}

支持(0) 反对(0) forhells | 园豆:724 (小虾三级) | 2020-09-22 10:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册