使用ajax将数据从服务器发送到客户端

3
我有一个场景,正在为内部公司使用制作基于Intranet的Web应用程序。在这种情况下,每当一个客户端更新应用程序中的任何内容时,其他客户端都应该得到更新。
步骤:
1. 客户端更新某个任务。 2. 然后服务器自动将更新的数据发送给当前连接的客户端。 3. 因此,客户端无需向服务器发送请求并不断检查更改即可进行更新。
请大家给出建议如何实现这一点。任何指针、评论都会非常有帮助。谢谢!
4个回答

4
你所寻找的被称为Comet。基本思想是:当客户端发出请求时,服务器会保持HTTP连接一段时间,并且只有在以下情况下才会回复:

  • 或者有一些更新
  • 或者经过了固定的时间(比如一分钟)

当客户端接收到更新时,它会处理新数据(如果有的话),然后立即请求另一个更新,循环继续。这是流行的HTTP聊天使用的方法。你可以通过上面的链接了解更多细节。


0
你可以使用SignalR。
服务器将有一个SignalR中心,客户端可使用JavaScript SignalR客户端进行连接。
当一个客户端向服务器发送数据时,它可以作为事件广播到所有或部分客户端,而无需客户端每隔几秒钟获取数据。

https://learn.microsoft.com/en-us/aspnet/core/tutorials/signalr

您甚至可以在服务器上设置后台服务,无需任何客户端调用即可推送数据。

https://learn.microsoft.com/en-us/aspnet/core/signalr/background-services?view=aspnetcore-3.1


0

对于我来说,如果:

客户端A向服务器发送信息, 客户端B必须更新

如果客户端B使用Web界面,则必须发送请求以进行更新。服务器无法自行发送更新的数据。

因此,对于我来说。客户端B必须每10秒(例如)在ajax中进行查询(这对用户应该是透明的),如果有新数据,则更新其界面。


-1
如果实时性不是最重要的,可以为每个客户端使用ajax请求,每隔10秒钟检查一次服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接