学英语就来国美英语网
×
您的位置:英语学习 > 英语学习 > Socket.IO进阶

Socket.IO进阶

作者:英语学习日期:

返回目录:英语学习

在里一篇博文 Socket.IO中,我简要介绍了Socket.IO的几乎使用方式并建立了一个简单的聊天室DEMO。本篇在入门篇的基础里,继续讨论Socket.IO的进阶用法。本篇将从配置、房间、事件等方面购买,介绍一些Socket.IO中实用的API和注意事项。

Socket.IO提供了4个配置的API:io.configure, io.set, io.enable, io.disable。其中io.set对单项进行修改在线英语,io.enable和io.disable用于单项设定布尔型的配置。io.configure可以使你对不同的制造环境(如devlopment英语进阶学习 房间,test等等)配置不同的参数。以下定义了development和release两种环境下Socket.IO的不同配置:

    var io =require('socket.io').listen(80);
io.configure('development',function(){
    io.enable('browser client etag');
    io.set('log level',1);});
io.configure('release',function(){
    io.set('transports',['websocket']);});

下面列出一些常见的配置项,具体性能参数参见 官方WIKI

房间是Socket.IO提供的一个非常好用的功能。房间相当于为指定的一些客户端提供了一个命名空间英语进阶学习 房间英语培训,所有在房间上的广播和通信却不会影响去房间以外的客户端。

在入门篇中,我们知道 socket.join('room name')可用于客户端进入房间, socket.leave('room name')用于离开房间。当客户端进入一个房间以后,可以利用下面两种形式在房间上广播消息:

    //1. 向my room广播一个事件,提交者会被排除在外(即不会收到消息)
io.sockets.on('connection',function(socket){//注意:和下面对比,这里是从客户端的角度来提交事件
    socket.broadcast.to('my room').emit('event_name', data);}//2. 向another room广播一个事件,在此房间所有客户端都会收到消息//注意:和上面对比,这里是从服务器的角度来提交事件
io.sockets.in('another room').emit('event_name', data);//向所有客户端广播
io.sockets.emit('event_name', data);

除了向房间广播消息之后,还可以利用下面API来获得房间的信息。

    //获取所有房间的信息//key为房间名,value为房间名对应的socket ID数组
io.sockets.manager.rooms
//获取particular room中的客户端,返回所有在此房间的socket实例
io.sockets.clients('particular room')//通过socket.id来获取此socket进入的房间信息
io.sockets.manager.roomClients[socket.id]

Socket.IO内置了一些默认事件,我们在设计事件的之后才会避免默认的事件名称,并灵活应用这种默认事件。

服务器端事件:

客户端事件:

在这里要提下客户端socket发起连接时的顺序。当第一次连接时,事件触发顺序为:connecting->connect;当失去连接时,事件触发顺序为:disconnect->reconnecting(可能进行多次)->connecting->reconnect->connect。

Socket.IO的进阶用法介绍几乎就到这里。个人觉得在平时使用的之后很多几乎API尚未够用了,这也表现了Socket.IO极其简单易用的设计美学。本文只是抛砖引玉,当在实际应用中遭遇缓解不了的难题时,再到查看官方确切的WIKI会比较好。

参考文献: Socket.IO官方WIKI

相关阅读

  • 海口有名的托福学校

  • 英语学习海口英语
  • 本页是海口环球教育培训学校为您整理关于托福培训 的详情页面,托福培训,就选海口环球教育培训学校。海口环球教育培训学校是知名品牌,名师执教、通俗易懂、深受广大学员所欢迎。
  • 洛阳入门英语培训哪家好

  • 英语学习洛阳英语
  • 洛阳当代外语学校,入门英语课程针对英语,想要做好英语入门的学员开设,采用小班互动教学模式,能够全方位的保障学员的学习效果。从英语语法、词汇、语音等基础知识讲起,循序渐进的夯实基础
关键词不能为空
极力推荐

国美英语网

英语学习 英语培训 英语口语 在线英语 零基础学英语