作者somoskylin (八七booboo)
看板AndroidDev
標題[問題] activities 使用同個socket
時間Sun Sep 9 16:02:05 2018
各位前輩們好
小弟android 新手
有一個app使用socket.io去連node.js
第一個activity
使用socket 接收資料做下拉式選單
第二個activity
進行客戶問答
以上都是連相同的ip 跟server
兩個activity我都寫 socket =IO.socket(url);
第二個一直沒辦法連線
我覺得socket是不是要獨立出來
但又不知道怎麼實作
懇請前輩指點迷津
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.214.215.135
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1536480127.A.28E.html
1F:推 aids61517: Socket做在Service裡面 09/09 19:05
2F:→ Liulian: 我猜第二個沒法連線,是因為port被佔了? 09/10 09:55
3F:→ Liulian: 然後推一樓的做法 09/10 10:00
4F:→ somoskylin: 謝謝兩位大大 我再看看Service的部分 09/10 16:37
5F:→ somoskylin: 那請問 兩個不一樣的頁面用相同的event該怎麼辦 09/10 16:38
6F:→ somoskylin: 像是使用相同的onConnect 09/10 16:39
7F:推 aids61517: 多個Activity可以透過Bind Service跟Service溝通,如果 09/10 20:03
8F:→ aids61517: 你的情況是多個activity需要監聽同一個event,而只有當 09/10 20:04
9F:→ aids61517: 前的activity需要動作的話可以考慮用生命週期onStart及 09/10 20:04
10F:→ aids61517: onStop來註冊/取消註冊 09/10 20:05
11F:→ somoskylin: 謝謝你 09/10 22:11
12F:推 daniel098962: 用static去宣告socket 應該就能同一個了吧 09/11 01:32
13F:→ somoskylin: 請問已經連線但第二個頁面要加event是該怎麼辦,我是 09/11 10:29
14F:→ somoskylin: 查到用eventbus 09/11 10:29
15F:推 aids61517: 我記得socket.io要先將event註冊後才connect,如果是這 09/11 14:29
16F:→ aids61517: 樣的話你必須先將需要的event註冊,接到後再分給不同的 09/11 14:29
17F:→ aids61517: Activity,分配的方式簡單點可以用 09/11 14:31
18F:→ aids61517: LocalBroadcastManager,或是你可以自己實作 09/11 14:32
19F:→ y3k: 如果APP小 只是要驗證可行性 static足矣 真的要上場就用servi 09/11 16:13
20F:→ y3k: ce吧 09/11 16:13
21F:→ somoskylin: 謝謝各位前輩指點 09/12 10:18
22F:→ somoskylin: 還有一點是socket io傳送中文有點不穩定,有時候是亂 09/12 10:19
23F:→ somoskylin: 碼,有人用過嗎? 09/12 10:19
24F:→ somoskylin: 用過->遇過 09/12 10:19