【发布时间】:2018-06-28 04:25:23
【问题描述】:
我的客户端有以下代码:
btn.addEventListener('click', function(){
socket.emit('chat',{
message: message.value,
handle: handle.value
});
});
所以我想我理解上述内容。当点击事件发生时,运行回调函数。在回调函数内部,让套接字向服务器发出这个“聊天”事件。随着事件套接字的发射,传递 JSON 数据。
现在在服务器端我们有这个:
var io = socket(server);
io.on('connection', function(socket){
socket.on('chat', function(data){
io.emit('chat', data);
});
});
我想我也明白这一点。将套接字绑定到此服务器。然后监听连接事件。当该事件被调用时,socket.io(会神奇地?)将一个套接字对象传递给我们的函数。然后我们听我们所有的套接字进行聊天。根据客户端的定义,获取聊天中发出的数据并将其发送回我们所有的套接字。
socket.on('chat', function(data){
// do cool stuff
})
在上面的例子中,我们让客户端在服务器端监听事件。
我的问题是,事件如何“传递”到客户端?这是某种原生 Javascript 功能吗?我想知道更多后端发生的事情。
【问题讨论】:
-
Afaik 客户端打开一个persistent connection。这样服务器就可以随时发送数据。
标签: javascript node.js socket.io