node.js - 使用 Socket.io 从 NodeJS 获取数据到 Dart/Flutter
问题描述
我正在尝试从 NodeJS 获取数据,但我不知道如何做到这一点,有人可以帮助我吗?本例使用的包有:import 'dart:async' 和 import 'package:socket_io_client/socket_io_client.dart';
testSocket.dart
void testSocket(socket) async {
Socket socket;
try {
// Configure socket transports must be sepecified
socket = io('http://127.0.0.1:3000', <String, dynamic>{
'transports': ['websocket'],
});
// Connect to websocket
socket.connect();
// THIS IS WHERE I WANT TO PRINT THE DATA THAT WE GOT RECIEVED FROM NODEJS
socket.on('event', (data) => print(data));
}
print("connected: ${socket.connected}");
}
index.js
const server = require('http').createServer()
const io = require('socket.io')(server)
io.on('connection', function (client) {
client.on('event', function name(data) {
data = "test";
// Send data somehow to Flutter
io.on();
});
});
// The live server
var server_port = process.env.PORT || 3000;
server.listen(server_port, function (err) {
if (err) throw err
console.log('Listening on port %d', server_port);
});
我真的很感激你花时间帮助我!
解决方案
您必须从服务器发出事件,并且您的客户端必须订阅这些相同的事件才能接收数据和更新。
testSocket.dart
void testSocket(socket) async {
Socket socket;
try {
socket = io('http://127.0.0.1:3000', <String, dynamic>{
'transports': ['websocket'],
});
socket.connect();
socket.on('testEvent', (data) => print(data));
}
print("connected: ${socket.connected}");
}
然后你的服务器必须发出testEvent
一些数据。
index.js
const server = require('http').createServer()
const io = require('socket.io')(server)
io.on('connection', function (client) {
client.on('event', function name(data) {
data = "test";
client.emit('testEvent', data);
});
});
var server_port = process.env.PORT || 3000;
server.listen(server_port, function (err) {
if (err) throw err
console.log('Listening on port %d', server_port);
});
现在,由于我们只触发一次性事件,因此数据只会出现一次。您必须发出相同的事件才能让客户端接收更新。
推荐阅读
- r - 按列值合并多列,对R中的剩余列求和
- python - 指数衰减和多维数组
- c# - 读取以字节为单位而不是 UTF-8 的固定宽度文件
- rust - 错误:板条箱`sp_io`中的重复语言项
- java - 使用 mockito 验证是否已记录带有 lambda 参数的错误
- python - 如何通过命令提示符删除路径
- javascript - 将引号内的花括号反应到广告类名称
- uwp - 如何在应用启动时正确隐藏鼠标光标?
- azure - 在 Azure Application Insights 中查找发生错误的应用服务
- angular - 从 API / Http 获取子级的基本 Angular Material-Tree 示例(嵌套)