Socket.io的一点理解

在socket.io.js客户端的源码里面,关于io(url)有这么一段解释:

/**
 * Looks up an existing `Manager` for multiplexing.
 * If the user summons:
 *
 *   `io('http://localhost/a');`
 *   `io('http://localhost/b');`
 *
 * We reuse the existing instance based on same scheme/port/host,
 * and we initialize sockets for each namespace.
 *
 * @api public
 */

所以,使用io(url)是要优于io.connect(url)的。


在调试页面js的时候,发现创建连接的过程是首先polling,后面再socket的,一开始以为是客户端并发的向server端发起不同类型的请求,server端再根据优先级来进行判断来建立某个类型的连接,是websocket ? 还是 polling ?

后来在socket.io.js下面一个初始化socket参数的时候,对于transports是这样设置的:

this.transports = opts.transports || ['polling', 'websocket'];

当参数中的transports 为空的时候,默认为:['polling', 'websocket'],这样那么就觉得很奇怪,并不是按照官网上面所说的那么个顺序:

['websocket', 'flashsocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling'],所以我将其修改为:

this.transports = opts.transports || ['websocket', 'flashsocket', 'htmlfile', 'xhr-multipart', 'xhr-polling', 'jsonp-polling'];
那么这样,现在每次都是首先建立websocket的连接了,就有了一个连接上的顺序了。

如有误,请指正。谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值