2017-08-01 70 views
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

编辑:更新消息的命令。同样的问题。另外

+0

_“我连接”_(客户端)与_“它连接”_(服务器)。 – robertklep

+0

感谢您的帮助。更新的问题。我放弃了这一切,让两个人都联系起来。同样的问题。 –

+0

客户端发送的事件(_“我的命令”_)和服务器预期的(_“The Command”_)之间仍然存在不匹配,反之亦然(_“它已连接”_与_“已连接”_,后者实际上是一个内置事件)。 – robertklep

回答

0

那么,事实证明,我有错误版本的socket.io.js。所以。那是一周的学习。谢谢您的帮助。