首页 > 解决方案 > 已创建信号集线器但服务器 OnConnected() 无法正常工作

问题描述

使用从 nuget 安装的 Signalr 版本 2.2.2。作为启动代码

 public partial class Startup
{
    public void Configuration(IAppBuilder app)
    { 
        ConfigureAuth(app);
        app.MapSignalR();
    }
}

Hub.cs 文件是

 public class MyChatHub : Hub
    {
        private IUserService _userService;
        private IMessageService _messageService; 
        public MyChatHub(IUserService userService,IMessageService messageService)
        {
            _messageService = messageService;
            _userService = userService;
        }
        public override Task OnConnected()
        {
            var userID = Context.QueryString["UserId"];
            if (userID != null)
            {
                Guid uId = Guid.Parse(userID);
                _userService.SaveUserOnlineStatus(new OnlineUsers { UserId = uId, ConnectionID = Context.ConnectionId, IsOnline = true });
                //RefreshOnlineUsers(uId);
            }
            return base.OnConnected();
        }

我的 js 文件是

var chat = $.connection.myChatHub;

$.connection.hub.start();
$.connection.hub.disconnected(function () {
    setTimeout(function () {
        $.connection.hub.start();
    }, 5000); // Restart connection after 5 seconds.
});
  1. 我可以看到使用定义的功能创建的信号器/集线器 在此处输入图像描述
  2. 我可以看到网络启动和连接 ID 在此处输入图像描述 我的问题:服务器和客户端未通信。新项目运行良好。 在此处输入图像描述

标签: javascriptasp.net-mvcsignalr

解决方案


推荐阅读