我正试图将Flutter应用程序连接到运行Socket.io的Node.js服务器。然而,每当我打印出socket.connected
时,它都会返回false。
我的Flutter Socket.io_client版本是socket_io_client: ^2.0.0-beta.4-nullsafety.0
,我的Node.js Socket.io版本是3.1.2。这意味着没有由于版本不兼容而导致的错误。
如何使Flutter客户端连接到Node服务器?
这是我连接到节点服务器的代码。
void initState() {
super.initState();
connect();
}
void connect(){
print("ASDASD");
IO.Socket socket = IO.io("https://geobus-server.ibrahimshah.repl.co/", <String, dynamic>{
'transports':['websocket'],
'autoConnect': true,
});
socket.connect();
socket.onConnect((data) => print("Connected"));
print(socket.connected);
}
这是我的Node.js服务器代码:
const app = express();
const http = require("http");
const server = http.createServer(app);
var io = require('socket.io')(server);
app.get('/', (req, res) => {
res.send('Hello Express app!')
});
app.get('/questions', (req, res)=>{
console.log(req.url);
})
io.on('connection', (socket) => {
console.log("User connected")
});
app.listen(3000, () => {
console.log('server started');
});
我的输出:false
将print
行放入socket.onConnect
方法块中,然后再次检查。