Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Socket.io 1.0.6客户端事件_Node.js_Socket.io 1.0 - Fatal编程技术网

Node.js Socket.io 1.0.6客户端事件

Node.js Socket.io 1.0.6客户端事件,node.js,socket.io-1.0,Node.js,Socket.io 1.0,我目前正在学习将socket.io与node js一起使用,但我遇到了困难,因为我认为不同版本之间可能发生了一些变化。我有一个使用1.0.4的小演示,其中我使用类似的东西从客户端发送事件并在服务器中接收它们: 服务器 var socketio = require('socket.io'); var http = require('http'); var app = express(); var server = http.Server(app); var io = socketio.liste

我目前正在学习将socket.io与node 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');
}

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

我实际上不明白这个问题。但以下是您的功能代码

客户:

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');
    });
});