1

我正在编写一个 android 客户端,它每 20-30 秒推送一次数据,并且还异步接收来自服务器的更新。因为我还有其他 UI 组件,所以我不能阻塞主线程。

使用的优点和缺点是什么(性能、复杂性、可维护性、易于使用的 API 等):

  1. 将 i/o 与异步任务/线程同步,用于将数据推送到服务器并从服务器接收事件
  2. 基于异步 nio lib 的 i/o

还建议是否有更好的方法。

4

1 回答 1

0

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

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

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

这是 NIO,但在 2 个后台线程上供读写器使用。值得注意的是,它不会在 UI 线程上进行任何联网 .. 包括连接建立。

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

a) NIO 在这种情况下不会买太多 b) 在 NIO 上实施 TLS 是一个 PITA

免责声明:我是 Autobahn 的作者,为 Tavendo 工作。

于 2012-07-23T15:07:38.240 回答