【问题标题】:Laravel real time with socket.ioLaravel 实时使用 socket.io
【发布时间】:2018-12-19 22:54:19
【问题描述】:

我正在使用 Laravel 和 socket.io 试验实时应用程序。我制作了一个单独的节点和 redis 服务器。现在看到几个教程介绍redis订阅频道。但是我尝试不使用 redis,并且 socket.io 能够连接和发出等。

问题是,redis 是用来做什么的,是否有任何特定的场景是 redis 能够处理 socket.io 无法处理的?

谢谢。

【问题讨论】:

  • 我会推荐 Pusher 和 Vue.js
  • 再次准备好我的问题。
  • Redis 可用于实时通知,它充当各种数据库。但是使用起来比较复杂,所以我推荐 Pusher。
  • 我以前用过 pusher。我的预算有限,所以我对 socket.io 有好奇心
  • Pusher 是免费的,除非你有一个大规模的应用程序

标签: laravel redis socket.io


【解决方案1】:

Socket IO 有助于在两个不同的浏览器选项卡之间进行通信,这与 Laravel 应用程序没有任何关系,仅使用 socket.js 文件。因此,当您想在 Laravel 应用程序和浏览器之间进行通信(例如聊天或有关 laravel 应用程序中发生的事件的实时通知)时,Redis 将为您提供帮助。

Laravel 应用程序将数据发送到 Redis,Redis 将数据传递给 socket IO,然后 socket IO 将数据发送到浏览器。

这类似于 AJAX,但在 ajax 中,客户端请求数据,服务器/laravel 应用程序响应 AJAX 请求。

在我们的例子中,服务器本身可以发送更新的数据,因为更改发生时没有浏览器请求,所以这很有帮助,因为当服务器端更新数据时浏览器不会。

当我开始学习 socket IO 和 Redis 时,我费了很大劲才找到并理解这一点,希望对你有所帮助。

【讨论】:

  • 哇。太感谢了。我想我们必须从某个地方开始:)
  • 我也可以在没有redis的情况下接收和广播数据,只是socket.io本身。 redis 对哪些具体场景有帮助?
  • 使用 Socket IO,你在浏览器之间进行通信,你的 laravel 服务器(MySQL 或其他)不是该通信的一部分。对于这个特定的广播,您只使用了 Socket IO 服务器。 Laravel 应用程序的所有其他实现都是通过您的 Laravel 服务器(MySQL)完成的。你使用 Redis 让 Laravel 服务器参与到这个 Socket IO 广播中。
猜你喜欢
  • 2014-04-14
  • 2014-09-04
  • 2019-12-20
  • 2016-11-12
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-02
相关资源
最近更新 更多