我正在使用laravel用于api的一些离子应用程序。有一些实时聊天功能的需求。在API端使用Ionic和laravel进行实时聊天
我一直在尝试使用类似socket.io的东西。
SO问题没有改变堆栈,我怎么能实现它。我目前的堆栈是cordova,离子型,然后是服务器端的laravel mysql。
这可以通过当前的堆栈来实现吗?
感谢您的帮助提前。
干杯!
我正在使用laravel用于api的一些离子应用程序。有一些实时聊天功能的需求。在API端使用Ionic和laravel进行实时聊天
我一直在尝试使用类似socket.io的东西。
SO问题没有改变堆栈,我怎么能实现它。我目前的堆栈是cordova,离子型,然后是服务器端的laravel mysql。
这可以通过当前的堆栈来实现吗?
感谢您的帮助提前。
干杯!
是的,它可以用这个堆栈完成 - 我自己完成了,我写了a blog post关于如何这样做。关于这个Laravel文档也是goes into some detail。我们的应用程序没有使用Ionic,但情况基本相同。
它的要点如下:
NewMessage
事件NewMessage
事件,当它触发时,发出给所有附属客户的消息TS(或者聊天,就是要专用,只有适当的客户端)socket.io-client
的消息时,采取适当的行动,例如,该消息被插入到DOM唯一增加你需要让你的堆栈是Node.js和Redis。我遇到的最大问题是配置Nginx,但部分原因是我使用SSL。
希望这是有道理的。如果您需要更多关于如何完成此操作的信息,请告诉我们。
这很有道理。但是在客户端,如果我将使用redis,我将不得不设置节点脚本,它可以侦听来自redis的广播事件。我将在哪里设置此节点服务器?通信就像android(cordova)到服务器(laravel)。并且我们需要双向通信,在此节点脚本将驻留并且节点服务器将被设置?希望你得到我的好奇心来混乱。大声笑 。 –
Node.js脚本可以在相同的服务器上运行,相当愉快,它只需要侦听不同的端口,Nginx可以将对Node.js脚本的代理请求反转为该端口。我的经验是,最好让Laravel处理通过HTTP接收消息,并在收到时广播它们 - 通过Websockets发送和接收消息而不将整个事件切换到Node.js是非常实用的,而这是完全可以接受的妥协。 –
基本上流程是Laravel将事件推送到Redis,Node.js脚本拾取事件并通过Socket.io广播它,并且该应用程序通过套接字接收它。io客户端 –
[在laravel 5中实现简单websocket的可能的重复](http://stackoverflow.com/questions/33471695/simple-websocket-implementation-in-laravel-5) –