在 API 端使用 Ionic 和 Laravel 进行实时聊天

Ani*_*rma 5 chat socket.io laravel cordova ionic-framework

我正在开发一些 ionic 应用程序,其中 laravel 用于 api 的 . 有一些实时聊天功能的需求。

我一直在尝试使用 socket.io 之类的东西。

所以问题是不改变堆栈,我怎样才能实现它。我目前的堆栈是cordova、ionic,然后是用于服务器端的laravel mysql

这可以用当前的堆栈来实现吗?

我在这里先向您的帮助表示感谢 。

干杯!

Mat*_*aly 6

是的,它可以用这个堆栈来完成——我自己已经完成了,我写了一篇关于如何这样做的博客文章。Laravel 文档也对此进行了一些详细说明。我们的应用程序没有使用 Ionic,但其他情况基本相同。

它的要点如下:

  • 消息像往常一样通过 POST 请求提交给 REST API
  • 提交消息时,控制器触发NewMessage事件
  • 此事件设置为可广播,并使用 Redis 驱动程序(您可能更喜欢使用 Pusher,但我使用了 Redis 和 Socket.io)
  • 一个单独的 Node.js 脚本监听NewMessage事件,当它触发时,将消息发送给所有附加的客户端(或者如果聊天是私密的,只有适当的客户端)
  • 在使用 接收消息时socket.io-client,将采取适当的操作,例如将消息插入到 DOM 中

唯一需要添加到堆栈的是 Node.js 和 Redis。我遇到的最大问题是配置 Nginx,但这部分是因为我使用的是 SSL。

希望这是有道理的。如果您需要有关如何完成此操作的更多信息,请告诉我。