@moonphy/websocket
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 • Public • Published

WebSocket 库

安装

npm i @moonphy/websocket

使用方法(推荐使用 composition API 方式解耦)

import InWebsocket from '@moonphy/websocket'
const ws = new InWebsocket() < IWSResData > ('ws://10.135.8.33:8001', {})
ws.sendJson({ messageType: 'ccc', data: { a: 1, b: 2 } })
ws.messageTypeJson('ccc', (data) => {
  console.warn(data)
})

composition API

名字 参数 返回值 说明
createWebsocket (url:string,opts?:InWebsocketOpts) InWebsocket 实例 创建一个 websocket 支持异步创建
createWebsocketByMutil (name:string,url:string,opts?:InWebsocketOpts) InWebsocket 实例 创建一个 有名字的 websocket 支持异步创建
message callback(event) void 接受所有的消息
messageByMutil (name:string,callback(event)) void 具有名字的接受所有的消息
send (msg:string) void 发送任意数据
sendByMutil (name:string, msg:string) void 具有名字的发送任意数据
close (name?:string) void 手动关闭连接
sendJson (msg: T, notResend?: boolean) void 发送 JSON 类型数据
sendJsonByMutil (name: string, msg: T, notResend?: boolean) void 具有名字的发送 JSON 类型数据
messageTypeJson (type:String,callback(jsonData,event)) void 返回指定类型的消息
messageTypeJsonByMutil (name:string,type:String,callback(jsonData,event)) void 具有名字返回指定类型的消息
getSocket (name?:string) InWebsocket 实例
closeAll void void 关闭所有的 socket
offMessageTypeJson (type:String,callback?(jsonData,event)) void 关闭指定类型的接收消息, callback 不传递关闭该类型所有的监听
offMessageTypeJsonByMutil (name:string,type:String,callback?(jsonData,event)) void 关闭指定类型的接收消息, callback 不传递关闭该类型所有的监听
offMessage (callback?(jsonData,event)) void 关闭全局消息监听, callback 不传递关闭全局所有的监听
offMessageByMutil (name:string,callback?(jsonData,event)) void 关闭全局消息监听, callback 不传递关闭全局所有的监听
// 使用示例

import { createWebsocket, sendJson, messageTypeJson, message, offMessage, offMessageTypeJson } from '@moonphy/websocket'
setTimeout(() => {
  createWebsocket('ws://10.135.8.33:8001') // 支持异步连接
}, 1000)

sendJson({ messageType: 'ccc', data: { a: 1, b: 2 } })
sendJson({ messageType: 'dddds', data: { a: 11, b: 211 } })

message((event) => {
  console.warn('所有响应的数据')
  console.warn(event)
})
messageTypeJson('ccc', (data) => {
  console.warn('第一次监测')
  console.warn(data)
})
messageTypeJson('ddd', (data) => {
  console.warn('第一次监测dd')
  console.warn(data)
})
function secTest(data: any) {
  console.warn('第二次监测')
  console.warn(data)
}
messageTypeJson('ccc', secTest)

setTimeout(() => {
  offMessageTypeJson('ccc')
  offMessage()
}, 5000)

多 socket 示例

import { createWebsocketByMutil, sendJsonByMutil, messageByMutil, messageTypeJsonByMutil } from '../src/index'
const name = 'socket1'
setTimeout(() => {
  createWebsocketByMutil(name, 'ws://10.135.8.33:8001')
}, 1000)

setInterval(() => {
  sendJsonByMutil(name, { messageType: 'mutil', data: { a: 1, b: 2, time: Date.now() } })
}, 1000)

messageByMutil(name, (event) => {
  console.warn('所有mutil响应的数据')
  console.warn(event)
})
messageTypeJsonByMutil(name, 'ccc', (data) => {
  console.warn('第一次mutil监测')
  console.warn(data)
})

messageTypeJsonByMutil(name, 'ccc', (data) => {
  console.warn('第二次mutil监测')
  console.warn(data)
})

new InWebsocket(url,opts)

url: 长连接的 url 必须

opts: 非必填

名字 类型 默认值 说明
pingHeartBeatTimeout Number 10000 发送心跳间隔时间
pongHeartBeatTimeout Number 30000 心跳响应超时时间
pingMsg String JSON.stringify({ messageType: 'HEARTBEAT' }) 发送心跳的内容
pongMsg String JSON.stringify({ messageType: 'HEARTBEAT' }) 响应心跳的内容,用于过滤 message , isCheckPongMsg 为 true 的时候有效
checkHeartBeat Boolean true 是否发送心跳包
reconnectMaxCount Number 5 连接断开的时候,重试连接次数
messageType String messageType 用于 JSON 数据响应的时候判断消息 Type 的值
isOnlineReConnect String true 网络恢复的时候是否重连
isCheckPongMsg String true 是否检测响应的消息
isCloseReconnect String false 关闭了连接是否自动重连

ws 对象方法/属性

名字 参数 返回值 说明
send msg:String void 发送字符串消息
message callback(event) void 接受所有的消息
close void void 手动关闭连接
sendJson data:JSON void 发送 JSON 类型数据
messageTypeJson (type:String,callback(jsonData,event)) void 返回指定类型的消息
ws 原生的 ws 对象
offMessageTypeJson (type:String,callback?(jsonData,event)) void 关闭消息推送
offAllMessage void void 关闭所有消息

Readme

Keywords

Package Sidebar

Install

npm i @moonphy/websocket

Weekly Downloads

0

Version

0.0.1

License

ISC

Unpacked Size

32.4 kB

Total Files

6

Last publish

Collaborators

  • moonphy