android - Flutter中真实设备和socket.io的问题
问题描述
当我尝试在物理设备中以调试模式运行我的应用程序时,我遇到了这个问题。当我尝试调试下一个代码时:
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' } );
});
});
在网络上运行良好,打印的“断开连接”和“连接”完美,但是当我尝试在我的手机中调试时,没有任何事情发生,我没有从套接字实例收到任何消息,如果有人知道如何解决这个我会很感激。
解决方案
推荐阅读
- ruby-on-rails - 如何创建(我认为)需要 PostgreSQL 子查询的 Rails 查询?
- kubernetes - Prometheus 仪表板暴露在入口控制器上
- .net-core - 我可以使用什么命令来删除 .NET Core 中的项目?
- c# - SignalR 请求用户为空
- python - Pandas:使用颜色选项卡创建 Excel 工作表
- drupal - 处理作曲家废弃包的最佳实践是什么?
- python - 熊猫有条件,包含,替换
- java - 如何防止 MappedByteBuffer 在文件末尾写入空字符?
- python - 如何仅重塑数据框的一部分
- if-statement - 如果满足范围内的条件,公式将数据移动到第二页