首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Laravel 5.2.37将信息从一个浏览器发送到另一个浏览器

用Laravel 5.2.37将信息从一个浏览器发送到另一个浏览器
EN

Stack Overflow用户
提问于 2016-06-21 20:53:43
回答 5查看 310关注 0票数 4

我有一个页面,用户可以在其中添加/更新记录。代码用Laravel 5.2编写

假设我在chrome中打开了添加/更新页面,在FireFox中打开了相同的url。因此,如果用户在Chrome浏览器中创建了一个新记录,信息应该立即被发送到Firefox。因此,我不需要向服务器发送基于ajax的reqeust来显示完整的列表。

我的问题是,我该从哪里开始呢?有什么博客我可以一步一步地看吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-06-25 19:01:30

您肯定需要使用WebSockets来实现它。在tiagoRL的回答中有几个很好的链接。但同时,既然你说你正在使用拉拉维尔5.2,我强烈建议你广播事件。如果您是Laracast的用户,请查看相关视频。

基本上,这是主要的环节:

https://laravel.com/docs/5.2/events#broadcasting-events

另外,为了简化服务器端的工作,我选择了推手

票数 10
EN

Stack Overflow用户

发布于 2016-06-25 01:13:35

要在两个或多个客户端之间实现这种实时消息传递,您需要使用套接字。一种选择是使用AJAX池,但是如果您想要实时,那么就使用套接字。

使用套接字,您可以在许多客户端之间创建连接隧道,但是您仍然需要一个服务器实现。由于持久连接的这种特性,您将需要一个能够同时打开多个连接的服务器体系结构,这就是为什么NodeJS非阻塞IO到手的原因,例如,使用比PHP少的资源。有关这方面的更多信息,请在这里找到:http://www.html5rocks.com/en/tutorials/websockets/basics/

在客户端,有websockets,这是一个在HTML5兼容的浏览器中实现的特性。

参考文献:

票数 3
EN

Stack Overflow用户

发布于 2016-06-25 01:48:36

这是一件非常正常的事情,是通过AJAX后台轮询实现的。你能做到的

假设

  • 如果必须对用户进行身份验证才能查看该页,则在两个浏览器中都会登录同一用户。
  • 需求很低,所以服务器负载将是最小的。
    • 如果这不是真的,请查看web套接字。

结构

  • 一页接一页的路由(已经有)
  • 返回行的路由
    • 全行
    • 从某一点开始的行

因此,页面加载并检索所有行,无论是服务器端还是客户端。将最后一行ID设置为JavaScript变量。然后将AJAX调用设置为计时器。AJAX调用发送页面上已经存在的最后一行,如果有新行返回,并且更新最后一行变量。或者,您可以使用时间戳来跟踪哪些行是新的。

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

https://stackoverflow.com/questions/37954394

复制
相关文章

相似问题

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