【问题标题】:Implementing chat in phonegap app在 phonegap 应用中实现聊天
【发布时间】:2016-03-07 19:03:11
【问题描述】:

我必须做出技术决定,但我不确定。 我必须在 iOS 和 Android 上运行的 Phonegap-App 中实现聊天。

整个应用基于 Microsoft Azure-Mobile Service,所以我有足够的服务器能力。

目前我已经确定了三种实现这种聊天的方法:

  • Websockets:应用程序通过 websockets 与后端进行通信,这将在 Node.JS 中完成。每条新消息都通过该套接字推送到服务器,并且用户发送的每条消息都在该通道上发回。我的问题是 websockets 的可靠性,特别是当我们考虑到用户四处走动时,是连接到公共 WIFI 热点还是通过 GPRS...我有一些 websockets 被代理阻止的糟糕经历。
  • 彗星/长轮询:应用程序发起长轮询请求,服务器不断检查传入的消息,当它们到达时,他立即回复。因为我使用的是 NodeJS,所以这更容易,因为没有线程阻塞。但这样做对我来说感觉很糟糕,尤其是在 HTML5 的所有这些新可能性中(例如,Websockets,见上文)
  • APNS / GCM:使用各个平台的 Push Message-Services 将此类信息发送到设备。这意味着,如果用户在后台打开应用程序,那么无论几秒钟都会收到消息(尤其是在使用频率很高的聊天室中)

你会推荐什么?您是否曾经在手机 Phonegap 应用中使用过 websockets 示例?

【问题讨论】:

  • Websocket 不错,但只支持 Android >4.4。
  • 这不是真正的问题,有适用于旧 android 版本的 phonegap 插件......但是连接性呢?当用户四处走动并将网络从 WiFi 更改为 GPRS,或者当他连接到具有阻止 websockets 代理的公共 WiFi Spot 时......?
  • @iliraga 在这种情况下,您最好使用带有后备功能的 websocket 库,例如 socket.io。新版本还不错。
  • 我选择使用像 Pusher 这样的商业服务,它很好地集成到 Azure 环境中,如果 websocket 不受支持或当前不可用,则使用长轮询回退。

标签: android ios cordova websocket chat


【解决方案1】:

我们决定使用 PubNub,因为它们为移动客户端提供了非常好的实现。他们不使用 Websocket,而是使用电池友好的长轮询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2011-06-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多