如何在具有即时消息功能的应用程序中保持黑莓套接字连接

时间:2012-12-04 09:06:23

标签: java blackberry java-me

我在应用程序中长时间保持套接字连接时遇到问题。它似乎在一段时间后(每2分钟)断开,特别是如果闲置。

碰巧我正在编写一个带有聊天功能的应用程序,这需要我保持套接字连接,以便我的应用程序的生命周期。我已经尝试过每分钟ping服务器的技巧,但这构成了(黑莓)资源的消耗。 Blackberry Push不是一个选项(因为我有除BB设备以外的其他客户端)。

请有人知道我如何解决这个问题或者仍然建议另一种方法来解决这个问题吗?

[我也感兴趣的是,像WhatsApp,Kiks等即时消息交叉移动平台应用程序如何在不过度耗尽资源的情况下实现这一目标(至少我的资源监控应用程序不会犯规)

2 个答案:

答案 0 :(得分:1)

我们在几个BB OS版本上发现套接字连接的行为相同。我们尝试使用套接字连接选项 - 支持超时,超时值等。但我们没有找到任何可靠且可在所有平台上保持一致的工作。

所以我们最终得到了下一个配置:

  1. 具有推送功能的设备 - 在不活动超时后切换到推送
  2. 时保持套接字打开状态
  3. 没有推送的设备 - 使用最长的ping保持套接字
  4. 案例2很少见,我们也选择了最长的ping时间间隔来保持连接打开。它不能100%工作,我们在某些设备上看到它仍然会断开连接。但是我们小心翼翼地处理这个案子,重新开启新案例。

    希望这会有所帮助。成功了!

答案 1 :(得分:1)

  

Blackberry Push不是一个选项(因为我有除BB设备以外的其他客户端)。

这很复杂,但流行的应用程序肯定会利用BlackBerry推送,以及所有其他移动平台提供的推送功能。这是支持黑莓“真实”的一部分,而不仅仅是事后的想法。简短的回答是使用BlackBerry推送服务。