我有一个页面,用户可以在其中添加/更新记录。代码用Laravel 5.2编写
假设我在chrome中打开了添加/更新页面,在FireFox中打开了相同的url。因此,如果用户在Chrome浏览器中创建了一个新记录,信息应该立即被发送到Firefox。因此,我不需要向服务器发送基于ajax的reqeust来显示完整的列表。
我的问题是,我该从哪里开始呢?有什么博客我可以一步一步地看吗?
发布于 2016-06-25 19:01:30
您肯定需要使用WebSockets来实现它。在tiagoRL的回答中有几个很好的链接。但同时,既然你说你正在使用拉拉维尔5.2,我强烈建议你广播事件。如果您是Laracast的用户,请查看相关视频。
基本上,这是主要的环节:
https://laravel.com/docs/5.2/events#broadcasting-events
另外,为了简化服务器端的工作,我选择了推手。
发布于 2016-06-25 01:13:35
要在两个或多个客户端之间实现这种实时消息传递,您需要使用套接字。一种选择是使用AJAX池,但是如果您想要实时,那么就使用套接字。
使用套接字,您可以在许多客户端之间创建连接隧道,但是您仍然需要一个服务器实现。由于持久连接的这种特性,您将需要一个能够同时打开多个连接的服务器体系结构,这就是为什么NodeJS非阻塞IO到手的原因,例如,使用比PHP少的资源。有关这方面的更多信息,请在这里找到:http://www.html5rocks.com/en/tutorials/websockets/basics/
在客户端,有websockets,这是一个在HTML5兼容的浏览器中实现的特性。
参考文献:
发布于 2016-06-25 01:48:36
这是一件非常正常的事情,是通过AJAX后台轮询实现的。你能做到的
假设
结构
因此,页面加载并检索所有行,无论是服务器端还是客户端。将最后一行ID设置为JavaScript变量。然后将AJAX调用设置为计时器。AJAX调用发送页面上已经存在的最后一行,如果有新行返回,并且更新最后一行变量。或者,您可以使用时间戳来跟踪哪些行是新的。
https://stackoverflow.com/questions/37954394
复制相似问题