我有一个场景。我正在制作基于Intranet的Web应用程序,供公司内部使用。 每当客户端更新应用程序中的任何内容时,应该更新其他客户端。
步骤:
一个客户更新某项任务。
然后,服务器会自动将更新的数据发送到当前连接的客户端。
因此,客户端会在不向服务器发送请求的情况下进行更新,并且不时检查更改。
请大家给我建议如何实现这一点..任何指针,评论都会非常有帮助。 感谢
答案 0 :(得分:3)
您要找的是Comet。基本思想如下:当客户端发出请求时,服务器会保持HTTP连接打开一段时间,并且仅在
时回复当客户端收到更新时,它会处理新数据(如果有)并立即要求进行另一次更新,然后循环继续。例如,这是通过HTTP的流行聊天使用的方法。您可以在上面的链接中找到更多详细信息。
答案 1 :(得分:0)
对我而言:
客户端A向服务器发送信息 客户B必须更新
如果客户B使用网络界面,他必须发送要更新的请求。服务器无法自行发送更新的数据。
所以对我来说。客户端B必须每隔10秒(例如)在ajax中进行一次查询(这应该对用户是透明的),如果有新数据则更新他的界面。
答案 2 :(得分:0)
您可以使用SignalR。
服务器将具有SignalR集线器,并且客户端可以使用JavaScript SignalR客户端进行连接。
一个客户端将数据发送到服务器时。它可以作为一个事件向所有或几个客户端广播,而无需客户端每隔几秒钟获取一次数据。
https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr
您甚至可以在服务器上设置后台服务来推送数据而无需任何客户端调用。
https://docs.microsoft.com/en-us/aspnet/core/signalr/background-services?view=aspnetcore-3.1
答案 3 :(得分:-1)
如果这不是最重要的,这是实时的,请为每10秒左右检查一次服务器的客户端使用ajax请求。