在节点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(李四

});















实施结果:



回调函数实际上是由触发器触发的。