我在將我的套接字 io 顫振客戶端連接到我的 nodejs 套接字 io 服務器時遇到問題。我知道節點套接字 io 包和顫振套接字 io 客戶端包之間的兼容性問題。因此,我只在兩端安裝了兼容版本的依賴項。
即,對于顫振
socket_io_client: ^1.0.2
和服務器端。
{
"socket.io": "^2.4.1",
}
我也嘗試了最新的依賴項,但我在日志中收到了相同的超時訊息,最初,我認為這是我的服務器的問題,但我使用郵遞員檢查了連接并且它有效。
下面我為服務器端和客戶端添加我的實作,
const { socketGuard } = require('./middlewares/socketio.middleware');
let io;
module.exports = {
init: (server) => {
io = require("socket.io")(server, { cors: { origin: '*' } });
io.use(async (socket, next) => {
let result = await socketGuard(socket);
if (result.isValid) {
next();
}
else {
next(new Error("Not authorized"));
}
});
io.on("connection", (socket) => {
console.log(`${socket.id} : connected`);
});
return io;
},
get: () => {
if (!io) {
throw new Error("Socket io not initialized");
}
return io;
}
};
對于顫振,我在 init 函式中添加了以下幾行,
io.Socket socket = io.io("http://192.168.1.14:5000");
socket.onConnect((data) {log("Hello world");});
socket.onConnectError((data) {log(data);});
socket.onError((data) {log(data);});
socket.on("message", (data) {log(data);});
uj5u.com熱心網友回復:
Map初始化時嘗試添加一個選項socket。
io.Socket socket = io.io("http://192.168.1.14:5000", <String, dynamic>{
"transports": ["websocket"],
});
在我的一個專案中,我可以確認如果沒有傳入它,它就無法作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453168.html
