【发布时间】:2020-12-09 07:14:10
【问题描述】:
我可以创建一个 MQTT 代理。我也可以创建一个网络客户端。但是设备有问题。我尝试连接设备的 IP(ws://192.168.1.240:1883)。设备无法连接到代理。 Web客户端可以连接WebSocket。
const aedes = require('aedes')()
const httpServer = require('http').createServer()
const ws = require('websocket-stream')
const port = 1883
ws.createServer({ server: httpServer }, aedes.handle)
httpServer.listen(port, function () {
console.log('websocket server listening on port ', port)
});
我尝试使用另一种方式创建 MQTT 代理并运行。代码如下。这次设备连接到代理。但是 Web 浏览器无法连接到代理。浏览器想要连接ws://192.168.1.240:1883。所以浏览器想要WebSocket。
const aedes = require('aedes')()
var server = require('net').createServer(aedes.handle);
var cors = require('cors');
const ip = "192.168.1.240";
const port = 1883;
const httpServer = require('http').createServer();
const io = require('socket.io')(httpServer, {
cors: {
origin: "*",
credentials: true
}
});
httpServer.listen(8091, () => {
console.log("Http Server and Socket.io are Running !");
});
server.listen(port, ip, () => {
console.log("TCP Server is Running !")
});
如何为设备和浏览器创建可连接的代理或服务器?
谢谢
【问题讨论】: