php Socket.io与Laravel 10?

0vvn1miw  于 2023-11-16  发布在  PHP
关注(0)|答案(1)|浏览(165)

我正在学习一点Laravel,想用www.example.com尝试websocketsSocket.io。我发现了几个tuts,但它们都很老。我看到的一件事是,现在Laravel建议在客户端使用Laravel Echo和其他一些库(或多或少都是商业的)作为Laravel的事件和客户端之间的“驱动程序”。Laravel曾经有过laravel-echo-server,但是看看它的代码,我发现它仍然支持Socket.io v2.3.0,而目前它是v4.所以我想我不能使用laravel-echo-server.
我不能完全理解的是:

  • 如果我想使用socket.io,我真的需要Laravel Echo吗?
  • 如果是的话,由于laravel-echo-server与socket.io v4不兼容,我还能用别的东西来代替吗?还有别的方法吗?

Laravel 10文档没有提到Socket.io,也没有提到laravel-echo-server。只有Laravel Echo。Laracasts有一个很老的(2015)视频课程,其中解释了socket.io与redis。没有Laravel Echo,也没有laravel-echo-server。但它是2015年的。
那么,我现在应该怎么走呢?

gg0vcinb

gg0vcinb1#

我之前在这里的回答中已经提到过这个问题:为什么我们需要像Pusher和Socket.io这样的产品来建立WebSocket连接?
但基本上,是的,Laravel Echo Server被放弃了,Laravel自己的文档福尔斯在描述如何最好地连接所有必要的部分,以推出自己的WebSocket服务器方面做得很短。而且有很好的理由:在Laravel中使用自己的WebSocket服务器和客户端实现并不是一件小事,为了处理这个问题,你需要考虑很多事情。
此外,StackOverflow上的单一答案将远远不能涵盖您推出WebSocket服务器和客户端所需的所有内容。
也就是说,可能最好的开始是开始查看Laravel如何注册它的Broadcasters
当Laravel Echo Server还在使用的时候,Redis Broadcast Driver(在后台使用predis/predis)经常被用来发送消息,使用Redis的pub/sub通知沿着一个队列工作进程来管理这些事件。
Laravel Echo服务器会订阅这些事件,并根据这些服务器事件向所有连接的客户端广播消息。
Socket.io Server API Documentation有相当多的关于设置许多基础知识的有价值的信息,这些基础知识不仅包括监听消息事件,还包括Redis事件。
不幸的是,我没有太多可以提供的,因为你的问题范围太广,无法涵盖每一个可能的细节。希望这能给你一个好的开始,当你探索更多Laravel和Websockets如何相互工作时,你可以缩小范围。

相关问题