【发布时间】:2020-07-10 12:02:10
【问题描述】:
我在 Node js 中创建了一个套接字服务器。从 ejs 文件订阅时它工作正常。
我感到困惑的部分是如何让我的 laravel 应用程序监听我创建的服务器?
提前致谢。
【问题讨论】:
-
这个问题没有即插即用的方法。您应该在本地创建一个服务,例如 pusher:www.pusher.com
标签: node.js laravel sockets websocket socket.io
我在 Node js 中创建了一个套接字服务器。从 ejs 文件订阅时它工作正常。
我感到困惑的部分是如何让我的 laravel 应用程序监听我创建的服务器?
提前致谢。
【问题讨论】:
标签: node.js laravel sockets websocket socket.io
Laravel 社区已经提出了一个解决方案,它被称为 Laravel Echo Server(检查一下),它基本上只是一个 Node + socket.io,它为您的 Laravel 应用程序实现了所有发布/订阅逻辑.
如果您想自己处理复杂性,那么您可以尝试在 Laravel 中设置广播驱动程序以使用 Redis。简单来说,Redis 是将 Laravel 应用程序连接到 socket.io 应用程序以进行 websocket 连接的中间人。这是呼叫消息代理。
例如,您有 Laravel 应用程序在 Redis 服务器上监听和发布事件,而 Node + Socket.io 服务器做同样的事情。当您通过 Laravel 触发事件时,您的节点也可以通过充当代理的 Redis 来监听该事件。然后,您的节点可以指示 Socket.io 对其前端用户执行任何操作。
此解决方案不需要 Laravel-echo,但您需要做很多事情来进行身份验证、处理私有通道和状态通道......等等。
我建议你看看 Laravel Echo Server,因为我所描述的只是表面。
【讨论】: