繁体   English   中英

从何处开始Signalr和Webforms聊天应用程序的聊天集线器连接

[英]Where to start chat hub connection for Signalr and Webforms chat application

我正在使用旧版Webforms项目(请注意VB.net)在Signalr中进行一对一聊天。 基本上,我正在寻找类似Facebook聊天的结果,因此基本上,只要用户登录,他们就被归类为“在线”。

我有一些成功。 在我的登录方法中,我将已登录的用户添加到OnlineUsers的静态列表中。 我有一个Chat.aspx页面,当我刷新该页面时,它将启动SignalR集线器连接,并且我可以看到登录的用户(从OnConnected方法加载)。

显然,我不想重新加载Chat.aspx页以查看刚刚登录的任何用户,所以我的问题是,从说我的母版页开始连接是否安全/高效,这样当用户上线/下线? 我猜这会导致不必要的连接负载吗?

这是我的代码。

登录成功(添加到OnlineMembers的静态列表中)

OnlineMember.AddOnlineMember(member.UserId, member.UserName)

Chat.aspx

$.connection.hub.start(function () { chat.server.getAllOnlineStatus(); });

Raj,我认为您最好在有人真正登录时立即调用例程。

如果您具有将用户添加到OnlineUsers列表的登录例程,则可以通过调用更新在线用户列表的方法来触发所有客户端的更新。

Chat.aspx页内的某个函数(除登录外)可在任何时间运行,将不必要地产生负载。 SignalR的优点是对客户端的持久性以及触发客户端例程时如何定位“全部”或“调用者”。

(这是对在ASPX中注册的例程的服务器端集线器调用。如果需要,可以将数据作为参数传递给它。)

成功登录新客户端后,可以执行以下操作:即Clients.Caller.updateOnlineUserList(); -或-Clients.Caller.updateOnlineUserList(someData);

(显然,您需要为“ updateOnlineUserList”编写代码,以更新页面上显示的用户列表。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM