[问题] activities 使用同个socket

楼主: somoskylin (八七booboo)   2018-09-09 16:02:05
各位前辈们好
小弟android 新手
有一个app使用socket.io去连node.js
第一个activity
使用socket 接收资料做下拉式选单
第二个activity
进行客户问答
以上都是连相同的ip 跟server
两个activity我都写 socket =IO.socket(url);
第二个一直没办法连线
我觉得socket是不是要独立出来
但又不知道怎么实作
恳请前辈指点迷津
作者: aids61517 (奇欧巴肯)   2018-09-09 19:05:00
Socket做在Service里面
作者: Liulian (流连)   2018-09-10 09:55:00
我猜第二个没法连线,是因为port被占了?然后推一楼的做法
楼主: somoskylin (八七booboo)   2018-09-10 16:37:00
谢谢两位大大 我再看看Service的部分那请问 两个不一样的页面用相同的event该怎么办像是使用相同的onConnect
作者: aids61517 (奇欧巴肯)   2018-09-10 20:03:00
多个Activity可以透过Bind Service跟Service沟通,如果你的情况是多个activity需要监听同一个event,而只有当前的activity需要动作的话可以考虑用生命周期onStart及onStop来注册/取消注册
楼主: somoskylin (八七booboo)   2018-09-10 22:11:00
谢谢你
作者: daniel098962 (阿河)   2018-09-11 01:32:00
用static去宣告socket 应该就能同一个了吧
楼主: somoskylin (八七booboo)   2018-09-11 10:29:00
请问已经连线但第二个页面要加event是该怎么办,我是查到用eventbus
作者: aids61517 (奇欧巴肯)   2018-09-11 14:29:00
我记得socket.io要先将event注册后才connect,如果是这样的话你必须先将需要的event注册,接到后再分给不同的Activity,分配的方式简单点可以用LocalBroadcastManager,或是你可以自己实作
作者: y3k (激流を制するは静水)   2018-09-11 16:13:00
如果APP小 只是要验证可行性 static足矣 真的要上场就用service吧
楼主: somoskylin (八七booboo)   2018-09-12 10:18:00
谢谢各位前辈指点还有一点是socket io传送中文有点不稳定,有时候是乱码,有人用过吗?用过->遇过

Links booklink

Contact Us: admin [ a t ] ucptt.com