→ s860134: gdb python 08/28 22:55
→ s860134: 或是 pdb 之類的 08/28 22:56
知識不足沒有聽聞過,
我先學習一下是什麼。
推 AndyLee76: 版本不合吧 socket.io在Python上很難接 08/28 23:12
在自己嘗試爬文的路上有注意到這點,
爬文有篇文章說可以嘗試使用 socketIO_client_nexus,
但調整程式碼後還是遭遇同樣的問題。
→ rexyeah: 我看example還蠻清楚的,example跑得起來嗎? 08/29 09:46
我試過:
from socketIO_client import SocketIO, LoggingNamespace
with SocketIO('localhost', 8000, LoggingNamespace) as socketIO:
socketIO.emit('aaa')
socketIO.wait(seconds=1)
(LoggingNamespace 不太確定使用方法,
我測試時都把他砍了)
以及:
from socketIO_client import SocketIO, LoggingNamespace
def on_connect():
print('connect')
socketIO = SocketIO('localhost', 8000, LoggingNamespace)
socketIO.on('connect', on_connect)
socketIO.emit('aaa')
socketIO.wait(seconds=1)
(上述 Port 都有記得更改,
這邊只是沿用 socketIO_client 的範例內容)
兩者都與內文遭遇同樣的問題。
* * * * *
後來把 LoggingNamespace 補回去,
但能力太淺看不太出來差異……
再來是,
剛剛把 server.js 中跟判斷連線網址的內容全部砍掉後,
莫名地可以運作了,
我可能要先往 server.js 那邊再確認一下發生甚麼問題。
* * * * *
來回報一下最後的結果。
首先是函式庫,
socketIO_client 和 socketIO_client_nexus 兩者,
前者好像可以應用在比較舊版本的 socket.io,
而後者則是比較新的版本,
我中途找到 socketIO_client_nexus 後就一直使用,
沒有回測 socketIO_client 在解決問題後能不能通。
其次是問題跟函式庫本身沒太大關係,
是我自己 server.js 有段檢查 headers 以及判斷檢查結果的程式碼,
導致 socketIO_client_nexus 傳過去時因為缺少 headers 所以直接炸掉,
而內文中遭遇的其他問題應該都是修錯地方導致的。
後來調整成:
socketIO = SocketIO(targetAddress,
serverPort,
headers={headerKey: headerValue})
就沒有出現問題了。
很抱歉遭遇了一個滿蠢的問題,
也再次謝謝各位前輩花時間閱讀與回應!
※ 編輯: jakeasa123 (175.181.39.217 臺灣), 08/29/2019 15:41:32