Socket.io创建连接的参数

Socket.io创建连接的参数

我不想花太多口舌向你推销Socket.io,因为我根本就不够资格,也因为根本就不需要,Socket.io目前在Websocket界中的霸主地位就好比当年的PHP~

写这篇的目的,只要是来吐槽Socket.io的官网的!太TM简单的,简直可以用简陋来形容!(难道是我道行太浅?!)

顺便说一句,从github上可以了解到作者马上就要发布 1.0 版本了!期望它的手册会更加丰满一些吧!

简单的从官网上了解完它提供的一些模型后,做个简单的DEMO根本不在话下,对,就是这么简单!但用在项目里的话,就需要对它进行更彻底的把控,我们主要关注在初始化连接时的可选参数细节!

先从 namespaces 开始吧,我更喜欢称之为“频道”。代码比较直观:

var chat = io.connect('http://localhost/chat');
chat.on('connect', function () {
  // chat socket connected
});

var news = io.connect('/news'); // io.connect auto-detects host
news.on('connect', function () {
  // news socket connected
});

主需要在第一个参数中以url的形式填写即可~~这样我们就可以很好的为客户端管理多个socket连接了,多贴心啊!我都感动哭了!

下面是重头戏:

io.connect(uri, [options]);

这是创建连接的方法,主要看一下可选的第二个参数,从源码中我们可以看到默认设置有哪些:

...
this.options = {
        port: 80
      , secure: false
      , document: 'document' in global ? document : false
      , resource: 'socket.io'
      , transports: io.transports
      , 'connect timeout': 10000
      , 'try multiple transports': true
      , 'reconnect': true
      , 'reconnection delay': 500
      , 'reconnection limit': Infinity
      , 'reopen delay': 3000
      , 'max reconnection attempts': 10
      , 'sync disconnect on unload': false
      , 'auto connect': true
      , 'flash policy port': 10843
      , 'manualFlush': false
    };
...

主要介绍几个我能看懂的,也比较常用的:

connect timeout

默认值: 5000

作用:设置创建连接所接收的超时时间,单位是毫秒。

try multiple transports

默认值: true

作用:当连接超时后是否允许Socket.io以其他连接方式尝试连接

reconnect

默认值: true

作用:当连接终止后,是否允许Socket.io自动进行重连

reconnection delay

默认值: 500

作用:为Socket.io的重连设置一个时间间隔,内部会在多次重连尝试时采用该值的指数值间隔,用来避免性能损耗(500 > 1000 > 2000 > 4000 > 8000)

max reconnection attempts

默认值: 10

作用:设置一个重连的最大尝试次数,超过这个值后Socket.io会使用所有允许的其他连接方式尝试重连,直到最终失败。

transports

默认值: ['websocket', 'flashsocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling']

作用:默认支持的链接方式(顺序敏感)


到目前为止,我们已经可以控制客户端创建连接的细节,如何配置取决于应用本身,比方说明确关闭Socket.io自己的重试策略,转而绑定相关的失败事件( errordisconnect ),根据业务需求进行手动重试等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值