【问题标题】:Chat algorithm with websockets and gcm使用 websockets 和 gcm 的聊天算法
【发布时间】:2014-12-24 05:43:59
【问题描述】:

我有一个聊天网站,我为此网站构建了一个应用程序。现在我的网站和应用程序使用 socket.io(websocket)。在我的应用程序的当前版本中,当用户关闭应用程序时,用户无法收到任何消息(通常)。我决定在我的应用程序中添加 GCM 支持以进行推送通知。但我对此有疑问。

我的场景:

  • 用户 1 从 PC 登录系统,然后连接到 socket.io 服务器,他正在等待消息。
  • 用户 2 从 android 应用程序登录系统,然后连接到 socket.io 服务器。
  • 现在他们正在互相聊天。

但是 10 分钟后,用户 2 关闭了应用,现在他不会收到消息了。

我在问我应该怎么做才能向用户 2 发送推送通知?

我不是在问 GCM 的实现,我知道 GCM 的实现。我知道用户 2 的设备 ID 以及如何向该用户发送推送通知。

我的问题是:我需要使用 socket.io 和 GCM。我如何检测“好的,当用户 1 向用户 2 发送消息时用户 2 关闭了应用程序并接收此消息并发送到 gcm 服务器”

这是一个好方法吗?或者你对这个聊天系统有什么建议?示例您可以从 Whatsapp 举一个示例,他们如何处理这个问题?我认为他们仅将 Gcm 用于推送通知,在应用程序中他们使用 Erlang。

【问题讨论】:

    标签: android google-cloud-messaging


    【解决方案1】:

    连接到 GCM 的不是 socket.io。 您需要一个用于 Node.js 的模块,以启用从 Node.js(运行 socket.io)到 GCM 的连接。像这样的模块gcm module,也有一些例子可以帮助你入门。

    因此,在您的情况下,如果用户在线(您应该已经拥有此功能),您需要致电 socket.emit(),否则用户离线并且您想通过致电 gcm.send() 来推送消息。

    要检测用户是否离线,您需要在调用 socket.on('disconnect',function(){//add user to offline list}) 处理程序时将用户添加到离线列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 2012-11-16
      • 2017-07-26
      • 2020-12-29
      • 1970-01-01
      相关资源
      最近更新 更多