在android中实现Socket.io的最佳方式

2024-03-14

我计划通过以下方式在 android 中实现 Socket.iothis https://github.com/socketio/socket.io/基于聊天的应用程序的库。据我了解,图书馆似乎相当不错。我想知道如何维护single整个应用程序始终保持套接字连接?这里我列出了实现的方法,其中我需要最好的、稳定的方法。

三种方式

主要应用班级延伸应用

通过这个我们有一个很好的范围,套接字连接被维护在主线程(或应用程序的生命周期),每当活动需要套接字实例时,我们都可以轻松获取它。但这也是主线程的问题。它可能会阻塞主线程。

绑定服务

通过这种方式我们可以bind服务与活动,我们可以简单地使用它。在单独的线程中执行是实现 IO/网络调用的方式。但跨进程传输比同一进程中直接访问的成本更高。

辛格尔顿

在 Singleton 中保持连接也是有意义的。但我们不知道实例何时被进程杀死,因为它在 Activity 生命周期中不起作用。

如果我有道理,请帮助我。如果没有注释掉。

Edit

我已经给出了更适合我的答案。


首先,应用程序的onCreate()与您的用例无关,因为当线程首次在非服务代码中启动时,您不能让线程在后台运行。

另外,我建议使用谷歌云消息 https://developers.google.com/cloud-messaging/而不是创建自己的机制。这对于设备的电池寿命来说是最好的,并且需要处理的代码也更少。

如果您确实想完全自行实现该聊天,Service是您唯一的选择。您也可以将它与单例结合起来,但我不推荐这种方法。您可以使用广播和BroadcastReceiver用于您之间的沟通Service and Activity,我认为它比绑定服务更容易,因为绑定到服务是异步的,并且与简单的广播相比,它会造成很多混乱。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中实现Socket.io的最佳方式 的相关文章

随机推荐