在节点socket.io事件的详细解决方案
socket.io类库不仅可以互相发送信息,而且发送事件到对方通过发射方法的socket端口对象。在以前的事件中说,现在已经发生了一个句子:用于手动触发事件。
复制代码代码如下所示:
socket.emit(事件、数据、功能(data1,data2…){)
});
在使用发送方法发送事件时,您可以使用端口对象的on方法监听一次方法的另一端的一次方法。
复制代码代码如下所示:
socket.on(事件、功能(数据,FN){
});
Socket.once(事件、功能(数据,FN){
})
以上数据的回调函数中的参数:由另一个发送的事件中携带的数据。
FN:当事件被发送时由另一个指定的回调回调函数。
1的情况是:当服务器和客户机连接到客户机时,发送一个新闻事件、一个对象实例,对象的hello属性值作为hello。在接收客户机发送我的另一个事件事件之后,携带数据服务器的输出接收控制台中客户端在事件中发送的数据。
服务器端代码,server.js
复制代码代码如下所示:
var(=HTTP);
请求(套接字);
var =要求(FS );
VaR服务器= http.createserver(功能(REQ,RES){
res.writehead(200,{内容类型:文本/ HTML});
res.end(fs.readfilesync(, /指标。html));
});
(1337)server.listen;
VaR插座= sio.listen(服务器);
socket.on(连接
socket.emit(新闻
socket.on(我的其他事件
console.log(服务器端接受信息% J
});
});
客户端的html代码:
复制代码代码如下所示:
VaR插座= io.connect();
socket.on(新闻
console.log(数据。你好);
socket.emit(我的其他事件
});
运行结果:
可以发现,执行总是在监视器上,而不是在手册上。
案例2:在手动触发事件时指定回调函数。
当客户端连接到服务器,setName事件发送到客户端。当事件携带张三并触发事件时,指定一个回调函数。回调函数向控制台输出2个参数值。
复制代码代码如下所示:
var(=HTTP);
请求(套接字);
var =要求(FS );
VaR服务器= http.createserver(功能(REQ,RES){
res.writehead(200,{内容类型:文本/ HTML});
res.end(fs.readfilesync(, /指标。html));
});
(1337)server.listen;
VaR插座= sio.listen(服务器);
socket.on(连接
socket.emit(setName
console.log(资料);
console.log(数据);
});
});
复制代码代码如下所示:
VaR插座= io.connect();
socket.on(setName
console.log(名称);
FN(李四
});
实施结果:
回调函数实际上是由触发器触发的。