Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在raspberry pi和运行NodeJ的服务器之间创建持久套接字连接的最佳方法_Node.js_Sockets_Socket.io_Raspberry Pi - Fatal编程技术网

Node.js 在raspberry pi和运行NodeJ的服务器之间创建持久套接字连接的最佳方法

Node.js 在raspberry pi和运行NodeJ的服务器之间创建持久套接字连接的最佳方法,node.js,sockets,socket.io,raspberry-pi,Node.js,Sockets,Socket.io,Raspberry Pi,我正在使用raspberry pi设置一个网络连接的洒水器,它在nodejs上运行pi.js。我还在为我的服务器运行nodejs。我需要这两个在它们之间有一个持久的套接字连接:raspberry pi和服务器。我在考虑socket.io 有没有人有过使用socket.io执行类似操作的经验?还是使用coAP协议更有意义?或者完全是别的什么?在沿着socket.io路径前进了一段时间后,我意识到它不是最合适的——特别是考虑到它的设计和构建更考虑浏览器。因此,我回到socket.io用作依赖项的内容

我正在使用raspberry pi设置一个网络连接的洒水器,它在nodejs上运行pi.js。我还在为我的服务器运行nodejs。我需要这两个在它们之间有一个持久的套接字连接:raspberry pi和服务器。我在考虑socket.io


有没有人有过使用socket.io执行类似操作的经验?还是使用coAP协议更有意义?或者完全是别的什么?

在沿着socket.io路径前进了一段时间后,我意识到它不是最合适的——特别是考虑到它的设计和构建更考虑浏览器。因此,我回到socket.io用作依赖项的内容:。这个npm软件包与浏览器无关,更适合我在整个物联网方法中的需要

我的代码如下所示:

服务器:

var WebSocketServer = require('ws').Server
, http = require('http')
, FS = require('fs')
, bodyParser = require('body-parser')
, express = require('express')
, app = express();


app.use(bodyParser.json());
app.use(express.static(__dirname + '/app'));

var server = http.createServer(app);
server.listen(8080);

var wss = new WebSocketServer({server: server});

wss.on('connection', function(ws) {
    ws.on('message', function(data, flags) {
        console.log(data);
    });

    ws.on('close', function() {
        console.log('stopping client interval');
    });

    console.log('started client interval'); 
}); 
客户(作为控制水阀的树莓Pi)


正是我需要的!非常感谢。
var WebSocket           = require('ws');

var ws = new WebSocket("ws://0.0.0.0:8080");
ws.on('open', function() {
    console.log('should be now connected');
}); 

ws.on('message', function(data, flags) {
    console.log(JSON.parse(data));
}