websocket-perfect
v1.1.3
Published
a websocket libary
Downloads
9
Maintainers
Readme
websocket-perfect
websocket封装,支持业务的重新订阅,断开重连,支持Rxjs6
websocket-perfect 如何使用
npm安装后使用方式如下:
import Ws from 'websocket-perfect'
const ws = new Ws({
url: 'ws://api.weixiaoyi/ws',
buffer: true,
debug: true
})
ws.send({
subscribe: 'apple',
})
.subscribe(([e, data]) => {
console.log(data)
})websocket-perfect API
const ws = new Ws(options)Options
const ws = new Ws({
url: 'ws://api.weixiaoyi/ws',
buffer: true, //所有已订阅的业务是否被缓存起来以当socket断开重连后重新订阅
bufferSize: 2, // 最大缓存数量
debug: true, //开启输出log模式
beforeSend:message=>console.log('开始订阅'),
afterSend:message=>console.log('订阅完毕')
})buffer
- 决定
ws.send(message)的参数message是否缓存起来,此配置全局有效,权重最高 - Accepts
trueorfalse - Default value:
undefiend
bufferWhen
- 由用户决定
ws.send(message)的参数message是否缓存起来,返回true缓存,返回false不缓存,该函数第二个参数,是被拦截器处理过的message,如果没有拦截器,data完全相等于message - Accepts
(message,data)=>boolean - Default value:
undefiend
bufferSize
- 由用户决定
ws.send(message)的参数message最大缓存数量 - Accepts
Number - Default value:
undefiend
beforeSend
ws.send(message)之前的钩子函数,该函数第二个参数,是被拦截器处理过的message,如果没有拦截器,data完全相等于message- Accepts
(message,data)=>void - Default value:
undefiend
afterSend
ws.send(message)之后的钩子函数,该函数第二个参数,是被拦截器处理过的message,如果没有拦截器,data完全相等于message- Accepts
(message,data)=>void - Default value:
undefiend
Methods
ws.send(message)
- 订阅业务,该方法返回结果是一个
observable对象,可直接使用Rxjs所有的操作符,调用subscrible方法可立即订阅结果 - message 订阅参数
ws.close()
- 客户端主动关闭websoket连接
ws.interceptor(message => message, ([e, data]) => [e,data])
- websocket配置拦截器,分别处理
message发送前的数据和收到响应的数据 - params[0] 拦截器预处理发送参数
- params[1] 拦截器预处理响应的数据,参数
e是完整的数据,data是e的data属性
缓存设置
- 开启订阅参数的缓存,必须把
buffer设置为true bufferSize决定了最大缓存量bufferWhen交由用户决定是否缓存该订阅参数- 可以将
ws.send(message)方法的参数message添加一个_flush的属性,或者在ws.interceptor拦截器给message添加,带有此属性的message将被自动缓存,该规则权重最低
