V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Visitor233
V2EX  ›  .NET

后端使用 AspNet.SignalR,前端要支持 web 和小程序的问题。懂 SignalR 的进来瞧瞧呀!

  •  
  •   Visitor233 · 2020-04-15 17:54:28 +08:00 · 2079 次点击
    这是一个创建于 1719 天前的主题,其中的信息可能已经有所发展或是发生改变。

    注意:是 AspNet.SignalR,不是带 Core 的那个

    起因:经理一开始跟我说的是,看看小程序能否支持 SignalR (并未提及 Web ),我在小程序端用 Websocket+心跳包实现了简单的信息交互。

    经过:昨天经理自己写了个 Web 页尝试连接我后端的 SignalR,因为我重写了 OnConnected 方法,他没传参,报错后,我也知道了是参数问题,跟他说明就没问题了。可现在还要再支持 Web 端!

    问题点:正常的 SignalR 前端都是 web,因为自带的 js 处理了很多问题,你只管发,接收信息就行。但因为要支持小程序 Websocket,我重写了 OnConnected,并且将用户连接加到了自己创建的线程字典中,还配上了心跳计时的方法。这样的话,web 端用户连接也加到了字典中,但 js 中的心跳就不知道会怎么样了,运行后也没出现未 ping,SignalR 自行处理断开连接操作。我尝试着加上心跳请求自己的清除计时器方法,并未与小程序那边产生冲突。

    结果:这已经涉及我的知识盲区,希望懂 SignalR 的大佬在评论中指点一番,我目前的操作有没有什么问题,我该如何处理 web 与小程序的用户连接管理。

    先在此谢过各位大佬

    1 条回复    2020-04-19 16:37:02 +08:00
    forgottencoast
        1
    forgottencoast  
       2020-04-19 16:37:02 +08:00
    我没用过 SignalR,我瞎说一通。
    以我对 Asp.Net MVC 的了解,你的用户连接管理应该可以通过不同级别的扩展点应用在某些 Hub 。
    所以我觉得你可以把面向 Web 和面向小程序的 Hub 分开,代码重用可以通过别的方式来实现。
    或者你在重写的 OnConnected 方法识别来源的不同,分别处理。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5873 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 03:20 · PVG 11:20 · LAX 19:20 · JFK 22:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.