0.8.3 • Published 4 years ago
@findsoft/ws-heartbeat-ts v0.8.3
ws-heartbeat-ts
根据 websocket-heartbeat-js 编写的ts版本
How to use
- 使用 getInstance获得ws实例, 而不是new关键字.
- 因为这可以确保对于相同的URL地址,当它不是初始调用时,它将获取现有实例,而不是创建相同URL的WS连接。
/** ts */
import WsHeartBeat from '@findsoft/ws-heartbeat-ts';
// your interface
interface IObj extends FWsData {
  id: string,
  typess: string
}
const wsInstance: WsHeartBeat = WsHeartBeat.getInstance(opt);
const myData = {id: 1, data: 2};
// 发送-json格式——自动 JSON.stringify
wsInstance.sendData( myData );
// 发送-普通格式
wsInstance.send( JSON.stringify(myData) );
// 接收-json格式(如果 JSON.parse 抛错,则会返回ws原始数据)
wsInstance.onmessage = (data: IObj, wsEvent: MessageEvent) => {
 console.log(data, 'data\nwsEvent', wsEvent);
};Option
| 参数 | 是否必填 | 类型 | 默认 | 说明 | 
|---|---|---|---|---|
| url | true | string | ws地址 | |
| pingTimeout | false | number | 5000 | 心跳包发送频率 | 
| pongTimeout | false | number | 10000 | 超时时间,超过判定为断开 | 
| reconnectTimeout | false | number | 2000 | 重连延时,每time毫秒尝试重连 | 
| pingMsg | false | string | "{}" | 心跳包内容 | 
| repeatLimit | false | number | 5 | 尝试重连的次数 | 
| dataType | false | json/byte | 'json' | ws-message返回的数据格式 | 
| byteFormat | false | utf-8 | 'utf-8' | 如果为byte类型,编码方式为utf-8 | 
约定
- 需要和后端讨论 收发消息 的数据格式
为什么用ts
- ts可以使用singleton单例模式开发,在ts项目中,可以保证同一个ws地址,只会有一个连接( version >= 0.5.x)
- ts可以自动生成 .d.ts的声明文件 -->
备注
其他文档可以参见 websocket-heartbeat-js