我收到这个错误(未定义的'on')。以下是我的服务器代码
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.send('Hello');
});
io.on('connection', function(socket){
console.log('a user connected');
io.emit('EPSON', {'name':'Lalit'});
console.log("Event Emitted successfully");
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
Here is my client code:
var io = require('socket.io-client');
//var socket = io.connect('http://printserverproject-happylaundry.rhcloud.com:8000');
var socket = io.connect('http://172.20.20.240:3000');
socket.on('connect', function(sock)
{
console.log('Connected!');
sock.on('EPSON',function(data)
{
console.log(data);
});
});发布于 2016-05-18 01:41:32
您必须更改您的客户端代码:
sock.on('EPSON',function(data)至
socket.on('EPSON',function(data)这是因为您假设connect客户端侦听器返回套接字:
socket.on('connect', function(sock)但它不会返回任何内容。您必须将事件侦听器绑定到socket。这与服务器端不同,因为在前端你只有一个客户端套接字,而在后端你有所有的客户端套接字。
我也不相信你如何在客户端创建套接字,也许这也是一个很好的解决方案,但我知道并使用:
var io = require('socket.io-client');
var socket = io('http://172.20.20.240:3000');也许这是因为你使用的是旧版本?
总之,您的客户端代码可能如下所示:
var io = require('socket.io-client');
var socket = io('http://172.20.20.240:3000');
socket.on('connect', function(sock)
{
console.log('Connected!');
});
socket.on('EPSON',function(data)
{
console.log(data);
});https://stackoverflow.com/questions/37275929
复制相似问题