tangan 发表于 2023-9-11 13:11:24

ThingJS-X 对接 WebSocket 本地服务

本帖最后由 tangan 于 2023-9-11 13:18 编辑

启动的ThingJS-X会自动启动一个WebSocket服务,X4环境所有域共用一个此WebSocket服务;给此WS服务推送我们可以通过PostMan如下图示:https://pan.uinosoft.cn/files/image/2023/9/d02875a1642e1a2355363d74d4087859.png
我们也可以不用系统自启动的这个WS服务;下面是创建得本地WebSocket服务的脚本,做这个是可以自定义用ws给森X发送内容,摆脱手动Postman来发送:(ChatGPT自动生成)推送定时任务就很方便
------------------------------------------------------------------------------------------------------------------------------const WebSocket = require('ws');const http = require('http');
// 创建一个HTTP服务器const server = http.createServer((req, res) => {    // 设置允许跨域请求    res.setHeader('Access-Control-Allow-Origin', 'http://10.100.33.73:8090');
    // 允许带凭据的请求    res.setHeader('Access-Control-Allow-Credentials', 'true');
    // 其他CORS头部也可以根据需要设置    res.setHeader('Access-Control-Request-Method', '*');    res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');    res.setHeader('Access-Control-Allow-Headers', '*');
    // 处理预检请求    if (req.method === 'OPTIONS') {      res.writeHead(200);      res.end();      return;    }
    // 处理其他HTTP请求    res.writeHead(404);    res.end();});
// 创建WebSocket服务器,将其附加到HTTP服务器const wss = new WebSocket.Server({ server });
wss.on('connection', (ws) => {    console.log('Client connected');
    // 每隔5秒向客户端发送消息    const interval = setInterval(() => {      if (ws.readyState === WebSocket.OPEN) {            ws.send(`{                "eventName": "eventValue",                "data": "#A1"            }`);      }    }, 5000);
    // 接收客户端发送的消息    ws.on('message', (message) => {      console.log(`Received message: ${message}`);
      // 发送消息给客户端      //ws.send('Server received your message');    });
    // 当连接关闭时触发    ws.on('close', () => {      console.log('Client disconnected');    });});
// 启动HTTP服务器const PORT = process.env.PORT || 8085;console.log(process.env.PORT,'bocaige')server.listen(PORT, () => {    console.log(`Server is listening on port ${PORT}`);});---------------------------------------------------------------------------------------------------------------------
保存至server.js启动如图示:https://pan.uinosoft.cn/files/image/2023/9/392c2b4bdd5d816f0038b05a20264ec4.png启动后关联ThingJS-X系统插件图示:https://pan.uinosoft.cn/files/image/2023/9/a5060cd57e88edc19b9584cabfe06676.png这样就可以使用本地Websocket服务向ThingJS-X发送任何消息了;
页: [1]
查看完整版本: ThingJS-X 对接 WebSocket 本地服务