我必须做出技术决定,但我不确定。
我必须在一个在iOS和Android上运行的Phonegap-App中实现聊天。
整个应用程序基于Microsoft Azure-Mobile服务,因此我有足够的服务器功能。
目前我已经确定了实现此类聊天的三种方式:
- Websockets :应用程序通过websockets与后端进行通信,后端将在Node.JS中完成。每个新消息都通过该套接字推送到服务器,用户发送的每条消息都在该通道上发回。我的问题是websockets的可靠性,特别是当我们考虑到用户四处走动,是连接到公共WIFI-Hotspot还是通过GPRS时...我遇到了一些使用代理阻止的websockets的不良体验。
- Comet / Long Polling :应用启动长轮询请求,服务器会不断检查收到的消息,当他们到达时,他会立即回复。因为我使用NodeJS这更容易,因为没有线程阻塞。但是我觉得这样做非常糟糕,尤其是HTML5的所有新功能(例如Websockets,见上文)
- APNS / GCM :使用每个平台的Push Message-Services将类似信息发送到设备。这意味着,如果用户在后台打开应用程序,则每个秒都会收到传入消息(特别是在经常使用的聊天室中)
你会推荐什么?您是否曾在移动电话空闲应用程序中使用过例如websockets?