我创建了一个非常基本的集线器,我通过一个组获取IHubContext
并调用我的 javascript 客户端方法,因此无论他们有多少不同的连接,我总是可以将数据推送给同一个用户,我将一些文本传递给和该文本附加在浏览器的多行文本框中。
这一切都非常好。该线程通常会运行长操作,通常使用集线器上下文附加有关操作状态的文本报告以调用客户端。
但是,我希望满足有人关闭浏览器然后稍后返回带有文本框的页面的情况。
现在,他们将开始从他们连接的操作点开始接收文本。如何从客户端向服务器发送请求以从操作开始时检索所有文本?
我的想法是有一个StringBuilder
对象,我将每一行与我发送到客户端集线器的文本相同。
然后在连接集线器时,从客户端调用服务器端函数,该函数请求可以从StringBuilder
对象中获取的全文ToString();
StringBuilder
但是集线器如何知道从仍在执行的线程中从哪里获取对象呢?
或者
如果有办法将其推送到客户端,我如何在执行线程中知道用户已连接并将其发送StringBuilder
ToString()
给用户?
注意。我不想每次都重新发送完整的字符串!只有当用户刚刚连接并需要赶上时。
我认为了解如何做到这一点将有助于了解如何在集线器之外的服务器上处理 signalR 和状态。谢谢你。