我在同一个网络上运行了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和端口直接连接到我的网络服务器会加载我已成功创建的网页。
答案 0 :(得分:0)
在服务器端使用socket.io作为客户端时,您需要执行var socket = require('socket.io-client')('http://192.168.1.138:8080', ...);
。见https://www.npmjs.com/package/socket.io-client