[英]Socket.IO connection to Mac
我想在Mac
和Android phone
之間創建一個簡單的Socket.IO
連接。 當我連接android模擬器(通過提供本地主機地址)時,它可以正常工作,但是當我嘗試連接真實設備(在同一Wi-Fi上)時,它就無法工作。 有什么設置,我應該在Mac上啟用以允許設備連接到它嗎?
我的服務器代碼:
var io = require('socket.io').listen(1337);
io.sockets.on('connection', function (socket) {
console.log("Someone just connected!");
// Echo back messages from the client
socket.on('image', function (message) {
console.log("Got image of length: " + message.length);
socket.emit('image', message);
});
});
我的Android客戶端代碼:
private fun connectToServer() {
try {
socket = IO.socket("http://192.168.1.5:1337/") // 10.0.2.2 for Emulator
socket.on("connect", connected)
startConnection = SystemClock.elapsedRealtime()
socket.connect()
} catch (e: URISyntaxException) {
Toast.makeText(this, "ERROR", Toast.LENGTH_SHORT).show()
}
}
private val connected: Emitter.Listener = Emitter.Listener {
Log.d("AndroidClient", "Connection time: ${SystemClock.elapsedRealtime() - startConnection}")
}
好了一會兒,我解決了。 Flutter似乎在后台添加了特殊的安全策略,必須在我們自己的Android應用程序中添加該策略,以允許通過HTTP而不是HTTPS進行連接。 我使用的解決方案2 本 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.