node.js - 如何使用 mqtt、nodejs 和 socket.io 发送实时数据到 Flutter
问题描述
我想使用 socket.io、nodejs 和 mqtt 从 mqtt 代理(hivemq.com)发送数据来颤动。
这是我订阅主题并将数据存储到firebase实时数据库的方法,现在我如何使用socket.io将数据发送到flutter?
//inserting data from mqtt into firebase realtime database
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
var http = require('http');
const port = process.argv.slice(2)[0];
const app = express();
app.use(bodyParser.json());
const mqtt = require('mqtt')
const client = mqtt.connect('mqtt://broker.hivemq.com')
var firebase = require('firebase');
const server = http.Server(app)
const socketIo = require('socket.io')(server)
function mqtt_messsageReceived(topic, message, packet) {
if(message){
let messageObject = JSON.parse(message)
insertMessage(topic, messageObject, packet)
socketIo.emit('geocoordinateData', messageObject);
}
}
socketIo.on('connection', (socket) =>{
console.log(' ${socket.id}')
socket.emit('request', 'ok');
})
//calling function to mqtt client event
client.on('message', mqtt_messsageReceived)
在客户端,我像这样初始化 socke.io
import 'package:flutter/material.dart';
import 'package:socket_io_client/socket_io_client.dart' as IO;
void main() {
IO.Socket socket = IO.io('https://xxxx.herokuapp.com/');
print('mainohhhhh');
socket.onConnect((data) {
print('connect');
socket.emit('msg', 'test');
print('socketohhhhh');
});
socket.on('geocoordinateData', (data) => print(data));
runApp(MyApp());
}
当我运行时,客户端级别没有任何反应
如何包装 socket.io 函数以将数据发送到颤动?
解决方案
推荐阅读
- node.js - 将文本从颤振发送到节点 js
- python - Generate combinations with repetition without using itertools
- database - 如何处理多个公司使用的数据库,需要存储有关同一成员的特定和非特定数据?
- javascript - 根据速度和网格计算减速度
- c++ - 抽象函数(C++ 中的纯虚函数)可以阻止该类的实例化吗?它们是定义合约的一种方式吗?
- html - 为什么 Flexbox 不收缩到它的内容?
- javascript - 视频播放结束后添加事件
- javascript - 带有数据表js的ajax数据
- c# - 将多个 Excel 工作表读入单个制表符分隔的文本文件
- javascript - 有没有办法所有浏览器都支持在 javascript 中使用 xhr 删除用户会话