首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SignalR可以告诉新客户端现有客户端数据的状态吗?

SignalR可以告诉新客户端现有客户端数据的状态吗?
EN

Stack Overflow用户
提问于 2016-01-27 04:34:29
回答 2查看 105关注 0票数 0

我是SignalR的新手,我正在尝试用它来编写一个基本上美化的熟食店柜台取号系统。我让它工作,以便“柜台”的人可以提前数字,它将显示在“客户端”以及另一台“柜台”的计算机。然而,我注意到,如果我打开一个新的“计数器”页面,它不知道其他客户现在使用的是什么数字,除非有人在新页面之前再次输入数字。如果新窗口尝试使数字前进,则会再次将所有人重置为1。在SignalR中,有没有办法让新客户端查看其他客户端的当前状态,或者我是否必须将数据持久化到外部源,如数据库或文本文件?(对于我的3-5条数据来说,数据库似乎有点过分了。)

如果需要,我可以提供我的一些代码,但我所拥有的是工作的,并且它是一个非常基本的SignalR集线器版本。很像无处不在的聊天教程,除了我有两个客户端页面,一个是只接收,一个可以发送和接收。

EN

回答 2

Stack Overflow用户

发布于 2016-01-27 08:44:46

您可以保存计数器状态,在您的服务器上,每个推进该数字的客户端都会通知服务器。当一个新的客户端连接时,服务器通过OnConnected事件知道这一点,然后它可以通知该客户端计数器号。

票数 0
EN

Stack Overflow用户

发布于 2016-01-27 11:32:24

您确实需要某种机制来在服务器中存储当前计数器的“状态”,以便它在多个客户端会话中持久存在。由于您无法访问通常的.Net会话,因此可以使用HttpRuntime.Cache或Signal-R客户端代理状态。

Web服务器缓存:

代码语言:javascript
复制
System.Web.HttpRuntime.Cache.Get("Counter")

客户端代理状态:

代码语言:javascript
复制
ChatHubProxy.state.counter= 10;

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35023424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档