Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现Laravel、node.js、socket.io和redis,以便使用数据库创建实时聊天/通知_Node.js_Laravel_Sockets_Redis_Socket.io - Fatal编程技术网

如何实现Laravel、node.js、socket.io和redis,以便使用数据库创建实时聊天/通知

如何实现Laravel、node.js、socket.io和redis,以便使用数据库创建实时聊天/通知,node.js,laravel,sockets,redis,socket.io,Node.js,Laravel,Sockets,Redis,Socket.io,我已经花了3天时间阅读、观看关于WebSocket、socket.io、node.js等的教程。 基本上,我是一名Laravel开发人员,对所有其他组件都有一个基本的了解。 遗憾的是,在这三天之后,我没有考虑到实现这个架构的所有逻辑步骤。我会尽力解释我理解了什么,请你纠正我 所以: WebSocket-是客户端和服务器之间的双向连续连接。它使用另一个端口,基本上不是HTTP/S连接。 要像我说的那样制作这种应用程序,我们还需要一台服务器,idk为什么,但这是Node.js。在这个Node.js

我已经花了3天时间阅读、观看关于WebSocket、socket.io、node.js等的教程。 基本上,我是一名Laravel开发人员,对所有其他组件都有一个基本的了解。 遗憾的是,在这三天之后,我没有考虑到实现这个架构的所有逻辑步骤。我会尽力解释我理解了什么,请你纠正我

所以:
WebSocket-是客户端和服务器之间的双向连续连接。它使用另一个端口,基本上不是HTTP/S连接。
要像我说的那样制作这种应用程序,我们还需要一台服务器,idk为什么,但这是
Node.js
。在这个
Node.js
服务器上,我们应该安装
socket.io
(服务器端软件包)和
Redis

然后,我们需要添加客户端
socket.io
(可能通过CDN)
Node.js
服务器上,我们正在创建一个
server.js
文件,其中需要我们需要的所有模块,如
socket.io
Redis
。我们为特定的未使用端口(as 6001)打开连接。然后我们运行这个节点服务器
在前端,我们订阅此频道,并定义向服务器发送<代码>和收听<代码>的方法

示例:
User1正在连接到特定路由。用户2也是如此。User1为User2键入一条消息,当按Submit时,User1的消息被发送到
Node.js
服务器,在
Redis
中发送(是吗?如果是-为什么?),然后
Node.js
正在监听在这种情况下要做什么,并将此消息发送给特定用户,或通过广播发送给除发布者以外的所有用户

哦,这甚至很难解释,使用了太多的步骤和技术。 有人能纠正我的逻辑吗?我真的很想了解使用这些组件的所有流程和逻辑。或者,请给我一些有用的文章和视频,可能是我没有看到它们。谢谢

我建议您阅读关于如何构建
聊天的
。基本上,您最终将拥有两台服务器,一台用于
Laravel应用程序,另一台用于
chat
(Socket.io)。这一点的关键是使用广播机并在两侧收听事件,
前端
后端

事件通过“频道”进行广播,频道可指定为公共或私人频道。您的应用程序的任何访问者都可以订阅公共频道,而无需任何身份验证或授权;然而,为了订阅专用信道,必须对用户进行身份验证并授权其在该信道上侦听


猜你的问题有点宽…哦,在Laravel 5.6中,已经有了Redis和socket.io的文档。谢谢,希望在那之后我会有更好的理解。我读了所有的东西,一些新的理论材料,但无论如何我没有自由开始开发一些东西。至少我需要一个包含所有使用的技术以及它们如何组合工作的图表。你知道有什么好的教程可以解释,如何使用socket.io启动NodeJS服务器,然后如何将其与Laravel集成到一个简单的演示应用程序中吗?你不需要NodeJS服务器,你有
Laravel Echo server
(),它集成了对
Laravel
的支持,您将需要
Laravel
Socket.IO
Laravel Echo
,而这正是5.6级文档非常混乱的地方。我用这个教程来让它工作。许多不同的后端和前端技术需要协同工作,因此这是一个相当高的级别。