首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >meanjs聊天实现:即使离开聊天模块也不会丢失消息

meanjs聊天实现:即使离开聊天模块也不会丢失消息
EN

Stack Overflow用户
提问于 2015-03-01 00:11:35
回答 1查看 166关注 0票数 1

这是一个关于在Socket.io中实现AngularJS的最佳实践的问题。

在关于这个主题的专著中,我发现了一个简单的聊天实现。通过这种方式实现了以下目标:

  1. Socket.io包装在一个服务中。
  2. 聊天控制器使用此服务来更新作用域变量。
  3. 视图被更新为有关范围变量以显示消息。

我实现了它,发现了一个问题,但我不知道有效的解决方案。

设想情况:

  1. 用户A正在与B聊天
  2. B将聊天模块留给应用程序的另一个模块。
  3. A在这个时候向B发送一条消息
  4. B丢失消息,当返回聊天模块时不会接收消息:只有聊天模块实现了Socket.on!

低效的解决方案:-在所有模块的每个控制器中实现Socket.on监听器,并破坏干原理!:-)

我对角度上的rootScope略知一二,但这是最好的方法吗?或者在哪里/如何最好地提供一个角度上的解决方案?

那么如何拥有它:

  1. 访问应用程序的任何模块,并接收和保存发送给B的所有消息。
  2. 回到聊天模块,B有所有可用的消息。

rootScope是要考虑什么,还是需要使用AngularJS的其他特性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-25 11:03:22

我认为最好的方法是将聊天消息存储在数据库中。这是因为在chats.client.controller文件中,$scope.message变量初始化为null。因此,通过将所有消息存储在数据库中,我们可以创建一个服务工厂,以便在用户返回聊天页面后查询所有消息和最新消息。第一步是帮助存储消息。

对于第二步,我们可以在核心客户端控制器中创建一个套接字,侦听chatMessage事件。由于核心是链接到所有模块,我们将能够得到通知时,一个新的消息已经发布。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28788533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档