Socket.io 1.0.6客户端事件

时间:2014-08-10 21:20:21

标签: node.js socket.io-1.0

我目前正在学习将socket.io与节点js一起使用,但我很难过,因为我觉得版本之间可能有些变化。我有一个使用1.0.4的小型演示,其中我使用这样的东西从客户端发送事件并在服务器中接收它们:

服务器

var socketio = require('socket.io');
var http = require('http');
var app = express();

var server = http.Server(app);
var io = socketio.listen(server);
var port = process.env.PORT || 8080;

server.listen(port, function(){
  console.log("Express server listening on port " + port);
});


io.on('connection', function (socket) {
    socket.emit('connected');
    socket.on('myEvent', function(){
        console.log('myEvent has been emitted');
    });  
});

客户端

$(document).ready(function(){
    $('#button').click(function(){
        emitEvent();
    });
});

var socket = io.connect('http://localhost:8080/');

socket.on('connected', function () {
  alert('server says I am connected');
});

function emitEvent(){
  socket.emit('myEvent');
}

对于这两个版本,我可以打开客户端上的套接字并接收稍后从服务器发送的“已连接”事件,而不是启动警报功能。这里的问题是我想从客户端发送任何其他事件。 “socket.emit( 'myEvent');”在emitEvent函数中似乎适用于1.0.4版本,但不适用于1.0.6版本。我一直在寻找有关更改的信息,并试图了解整个模块,但无法找到解决方案。有谁知道我做错了什么?显然,发送客户端事件的方式已经改变。如果有人可以帮我解决这个问题,我将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我实际上并不理解这个问题。但这是您的功能代码。

客户端:

var socket = io.connect();
$('#button').click(function(){
    socket.emit('myEvent');
});
socket.on('connected', function(){
    alert "you are connected";
});

服务器:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(app);
var port = process.env.PORT || 8080;
app.listen(port);
io.on('connection', function(socket){
    socket.on('myEvent', function(){
        socket.emit('connected');
        console.log('emmited succesfully');
    });
});