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自己的重试策略,转而绑定相关的失败事件( error , disconnect ),根据业务需求进行手动重试等。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2 Socket.io 是一个用于在 Vue.js 项目中实现实时双向通信的库。它基于 Socket.io,提供了一种简单而强大的方式来处理实时数据传输和事件触发。 使用 Vue2 Socket.io,你可以轻松地在 Vue 组件中使用 Socket.io 客户端,与服务器进行实时通信。它提供了以下主要功能: 1. 实时数据传输:通过 Socket.io,可以在客户端和服务器之间实时传输数据。你可以发送和接收数据,以便在应用程序中实时更新状态或展示实时信息。 2. 事件触发:Socket.io 允许你在客户端和服务器之间触发自定义事件。你可以定义事件名称和参数,并在需要的时候触发这些事件,以便在应用程序中执行相应的操作。 3. 房间管理:Socket.io 提供了房间管理功能,允许你将连接的客户端分组到不同的房间中。这样,你可以根据需要向特定房间中的客户端发送消息或触发事件。 使用 Vue2 Socket.io 的基本步骤如下: 1. 安装依赖:通过 npm 或 yarn 安装 vue-socket.iosocket.io-client。 2. 创建 Socket 实例:在 Vue 组件中创建一个 Socket 实例,并配置服务器的地址和选项。 3. 监听事件:使用 `socket.on` 方法监听服务器发送的事件,并在回调函数中处理接收到的数据。 4. 发送事件:使用 `socket.emit` 方法向服务器发送事件,并传递相应的数据。 5. 在组件中使用:在 Vue 组件中使用 Socket 实例,通过调用方法或触发事件来实现实时通信。 下面是一些相关问题:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值