【发布时间】:2021-06-14 06:02:02
【问题描述】:
当我尝试在物理设备中以调试模式运行我的应用程序时,我遇到了这个问题。 当我尝试调试下一个代码时:
class SocketService with ChangeNotifier {
ServerStatus _serverStatus = ServerStatus.Connecting;
SocketService() {
this._initConfig();
}
void _initConfig() async {
IO.Socket socket = IO.io('http://192.168.56.1:3000/', <String, dynamic>{
'transports': ['websocket'],
'autoConnect': true,
});
socket.on('connect', (_) {
print('connect');
});
socket.on('event', (data) => print(data));
socket.on('disconnect', (_) => print('disconnect'));
socket.on('fromServer', (_) => print(_));
}
}
在我的后端我有这个:
文件index.js
const express = require('express');
const path = require('path');
require('dotenv').config();
const app = express();
const server = require('http').createServer(app);
module.exports.io = require('socket.io')(server);
require('./sockets/socket');
const publicPath = path.resolve( __dirname, 'public' );
app.use( express.static( publicPath ) );
server.listen( process.env.PORT, ( err ) => {
if ( err ) throw new Error(err);
console.log('Servidor corriendo en puerto', process.env.PORT );
});
文件socket.js
const { io } = require('../index');
io.on('connection', client => {
console.log('Cliente conectado');
client.on('disconnect', () => {
console.log('Cliente desconectado');
});
client.on('mensaje', ( payload ) => {
console.log('Mensaje', payload);
io.emit( 'mensaje', { admin: 'Nuevo mensaje' } );
});
});
在网络上运行良好,并且完美地打印了“断开连接”和“连接”,但是当我尝试在我的手机中调试时,没有任何事情发生,如果有人知道如何,我没有从套接字实例收到任何消息解决了这个问题,我将不胜感激。
【问题讨论】:
-
这是因为您的手机很可能无法访问该端口上的服务器。您的服务器上是否开放了 3000 端口以供访问?
-
@naif.mazen 我是这方面的初学者,所以,我不知道该怎么做,如果你能告诉我更多细节,我将不胜感激
标签: android node.js flutter dart socket.io