![](/img/trans.png)
[英]Unable to connect to a node.js socket.io 3.x server from Android socket.io 2 client
[英]Cannot GET / using node.js + socket.io to connect client to server
因此,我正在尝试使用软件的 node.js 和 socket.io 使用蓝牙创建一个室内位置跟踪器。我正在使用树莓派 3 来获取 RSSI 读数,并且只需要一个特定硬件的 RSSI 值。 我已经能够在我的客户端和服务器之间创建连接,并设法为我想要 RSSI 值的特定硬件获取 uuid。 然而,虽然连接成功,但我没有从 pi 获得任何 RSSI 值。 每次我执行下面的代码时,每当我访问我的本地主机 web 页面时,我得到的都是“无法获取/”错误。
以下代码是我从 pi 执行的:
var noble = require('noble');
//replace localhost with your server's IP;
var socket = require('socket.io-client')('http://localhost/scanner');
//replace with your hardware address
var addressToTrack = '7c669d9b2dda';
socket.on('connect', function(){
console.log('connected to server');
});
noble.on('discover', function(peripheral){
if(peripheral.uuid == addressToTrack){
socket.emit('deviceData', {mac: peripheral.uuid, rssi:peripheral.rssi});
}
});
noble.startScanning([], true)
下一个代码是我用来设置服务器的代码,以及它应该如何接收从 pi 发送的信息:
var express = require('express');
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var scanner = io.of('/scanner');
scanner.on('connection', function(socket) {
console.log('Scanner Connected');
socket.on('message', function(msg) {
//received message from scanner
//do some processing here
});
socket.on('disconnect', function() {
console.log('Scanner Disconnected');
});
});
http.listen(3000, function() {
console.log('listening on *:3000');
});
以下代码摘自https://blog.truthlabs.com/beacon-tracking-with-node.js-and-raspberry-pi-794afa880318如果您想知道我从哪里引用代码。
我对这一切都很陌生,所以我试图了解问题出在哪里。
您没有为/
这就是为什么您得到任何快速路线设置: Cannot GET /
添加:
// this should be AFTER socket.io server setup
app.use((req, res) => {
res.send('Hello world');
});
http.listen(3000, function() {
console.log('listening on *:3000');
});
现在,除了socket.io
特定端点之外的每个端点都将响应: hello world
除此之外,关于您的客户端代码。 您正在尝试连接到: http://localhost
而不是http://localhost:3000
,这是您的 socket.io 服务器运行的端口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.