Laravel 实时与 socket.io

标签 laravel redis socket.io

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

问题是,redis 的用途是什么?是否存在 redis 能够处理而 socket.io 不能处理的特定场景?

谢谢。

最佳答案

Socket IO 有助于在两个不同的浏览器选项卡之间进行通信,而这与仅使用 socket.js 文件的 Laravel 应用程序无关。因此,当您想要在 Laravel 应用程序和浏览器之间进行通信时,例如聊天或有关 Laravel 应用程序中发生的事件的实时通知,那么 Redis 会帮助您。

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

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

在我们的例子中,服务器本身可以发送更新的数据,因为更改是在没有浏览器请求的情况下发生的,所以这很有用,因为在服务器端更新数据时浏览器不会这样做。

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

关于Laravel 实时与 socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51293265/

相关文章:

php - Laravel View 渲染问题

laravel - 为什么 Laravel 设置环境后使用错误的数据库文件?

mysql - 如何通过在mysql中以逗号分隔在一行中添加多个值?

Laravel 5.4 迁移

redis - ServiceStack.Redis.RedisResponseException 使用 Redis 集群和 Twemproxy

node.js - socket.io 和express 之间的共享 session 在远程服务器上不起作用

mongodb - MongoError : not authorized on db to execute command? 连接socket.io时

node.js - 为什么 socket-io 的 get 无法从持久 session 中获取数据?

node.js - 无法连接到 fakeredis 实例(Nodejs + Redis + Fakeredis)

Redis Sentinel 和 fix-slave-config : Redis node is getting set as slave of two masters when it should not be