无法GET /使用node.js + socket.io将客户端连接到服务器

时间:2020-04-24 11:53:16

标签: node.js socket.io

因此,我正在尝试使用该软件的node.js和socket.io使用蓝牙创建一个室内位置跟踪器。我正在使用树莓派3拾取RSSI读数,只希望从一种特定的硬件获得RSSI值。我已经能够在客户端和服务器之间建立连接,并设法获得我想要RSSI值的特定硬件的uuid。但是,虽然连接成功,但是我没有从pi获取任何RSSI值。每次我执行下面所有代码时,每次访问我的本地主机网页时,都会出现“无法获取/”错误。

以下代码是我从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,如果您想知道我在哪里引用代码。

我对这一切还是陌生的,所以我试图了解问题出在哪里。

1 个答案:

答案 0 :(得分:0)

您没有为Task Area_a Area_b 1 area1 area2 1 area3 area4 2 area3 area4 2 area6 area5 2 area8 area10 3 area2 area4 设置任何快速路线,这就是为什么要获得:/

添加:

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,它是您的socket.io服务器运行的端口。