通过Node Websockets连接2台服务器

时间:2016-12-12 13:56:13

标签: javascript node.js sockets

我在同一个网络上运行了2个Raspberry Pi。

我正在使用一个作为我家的本地Web服务器,然后我将另一个连接到某些设备。我希望他们能够通过网络套接字相互通信,但我遇到了一些问题。

我的服务器看起来像这样:

express = require('express');  //web server
app = express();
server = require('http').createServer(app);
io = require('socket.io').listen(server);   //web socket server

server.listen(8080); //start the webserver on port 8080
app.use(express.static('public')); //tell the server that ./public/ contains the static webpages

io.sockets.on('connection', function (socket) { //gets called whenever a client connects
    socket.on('Testing',function(data){
       console.log("Testing connection");
    });    
});

我的问题来自客户端连接我真的不确定使用什么代码来尝试连接。

我在客户端安装了Express和Socket.io并使用了以下代码:

    console.log('1');

   // Connect to server
var io = require('socket.io')
var socket = io.connect('http://192.168.1.138:8080', {reconnect: true});

console.log('2');

// Add a connect listener
socket.on('connect', function(socket) { 
    console.log('Connected!');
});

console.log('3');

但这会导致io.connect上的错误不是一个函数。

我不确定如何让客户工作,所以感谢任何建议。

我应该补充说,通过ip和端口直接连接到我的网络服务器会加载我已成功创建的网页。

1 个答案:

答案 0 :(得分:0)

在服务器端使用socket.io作为客户端时,您需要执行var socket = require('socket.io-client')('http://192.168.1.138:8080', ...);。见https://www.npmjs.com/package/socket.io-client