0
我是新来的nodeJS ...和编程。但我试图让这些代码工作,我不明白为什么它似乎没有工作。更糟糕的是,我不知道如何排除故障。如果我使用console.log语句,我可以看到,一旦启动网页,它就会连接,但网页永远不会从nodeJS服务器收到消息,服务器也不会从网页获取消息。我正在使用Chrome浏览器。树莓派上的nodeJS socket.io似乎并没有工作
server.js:
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
server.listen(80);
app.use(express.static(__dirname + '/public'));
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
var SerialPort = require('serialport');
var portName = process.argv[2];
var sp = new SerialPort(portName, {
baudRate: 9600,
dataBits: 8,
parity: 'none',
stopBits: 1,
flowControl: false
});
io.sockets.on('connected', function (socket) {
socket.emit('connected', {
data: 'connected'
});
socket.on('connected', function (data) {
console.log(data);
//Code
console.log('Sending Packet. Contents:');
sp.write(packet);
console.log(packet);
console.log('Packet Sent');
});
});
我从命令提示符启动它raspbery PI零点W:
sudo node server.js /dev/ttyACM0
中的index.html引用interface.js。 interface.js的顶部:
$(document).ready(function() {
// Connect to the node.js server. Gets server's local ip.
// Using this method robot can only be connected to on
// local network.
var ip = location.host;
var socket = io.connect(ip); // Connects to server
// Upon establishing a connection to the socket.io server...
socket.on('connected', function (data) {
console.log(data);
// Send out a message to the server
socket.emit('connected', { command: 'nothing' });
});
当我在interface.js我让他们直到socket.on声明的console.log语句。
节点-v V6.4.0 NPM -v 5.3.0 NPM列表socket.io [email protected] uname -m输出 armv6l
编辑:更新消息的命令。同样的问题。另外
_“我连接”_(客户端)与_“它连接”_(服务器)。 – robertklep
感谢您的帮助。更新的问题。我放弃了这一切,让两个人都联系起来。同样的问题。 –
客户端发送的事件(_“我的命令”_)和服务器预期的(_“The Command”_)之间仍然存在不匹配,反之亦然(_“它已连接”_与_“已连接”_,后者实际上是一个内置事件)。 – robertklep