哪种方法更适合在Android应用程序中使用Websockets:async i / o或同步i / o与线程?

时间:2012-07-23 14:35:33

标签: android websocket asyncsocket

我正在编写一个Android客户端,每20-30秒推送一次数据。还异步从服务器接收更新。 由于我也有其他UI组件,我无法阻止主线程。

使用的优点和缺点(性能,复杂性,可维护性,易用API等):

  1. 将i / o与异步任务/线程同步以将数据推送到&从服务器接收事件
  2. async nio lib based i / o
  3. 还建议是否有更好的方法。

1 个答案:

答案 0 :(得分:0)

使用Android和UI应用程序,您不仅不应该阻止UI线程,而且对于较新版本的Android,根本不允许在UI线程上进行任何网络连接。

因此,即使是基于NIO的UI线程网络通常也不是一种有效的方法。

对于WebSocket,您可能需要查看:https://github.com/tavendo/AutobahnAndroid

这是NIO,但是在读者/作者的2个后台线程上。值得注意的是,它没有在UI线程上进行任何联网..包括连接建立。

我们可能会在不久的将来重写,以便在后台线程上执行旧式IO:

a)在这种情况下,NIO不会买很多东西 b)通过NIO实现TLS是PITA

免责声明:我是高速公路的作者并为Tavendo工作。