1

我想用 SignalR 做什么:

1- 在页面加载时从会话 UserID 设置隐藏字段,并将此 ID 发送回服务器的 SignalR Hub 以启动给定用户的轮询线程。

2-当用户离开网站时终止线程。

现在,我每 30 秒向每个用户发送一次 AJAX 请求以检查新的用户消息。我只想用 SignalR 替换它。当通过在页面加载时设置隐藏字段然后通过ajax请求设置会话变量来创建用户会话时,我可以在HUB中创建用户级线程,因此不会一次又一次地为同一用户创建新线程,例如页面刷新。该线程会在(15 秒)后定期检查新到达的消息。主要问题是如何在会话结束时终止为特定用户创建的线程。这是使用 SignalR 的正确方法吗?

4

1 回答 1

0

这听起来不像是好的设计——轮询从来都不是好的,无论如何都不是针对这类问题的。如果您可以立即传递消息会更好。您是否使用多个网络服务器?如果没有,则在应用程序内本地传递消息。如果您使用多个网络服务器,请考虑使用 RabbitMQ、Redis 或类似的东西在服务器之间发送消息。

于 2012-06-22T07:52:46.030 回答