swx-ws-mode
TypeScript icon, indicating that this package has built-in type declarations

1.7.6 • Public • Published

简介

对基于websocket的场景启动进行一次简单的封装

通过NPM安装

$ npm install/i swx-ws-mode --save

构建sdk

$ npm run build

发布sdk到NPM包管理

$ npm publish

api

URL 对象实例化后的第一个参数是链接通道地址 例如:10.1.40.210:8080

constructor 中有以下属性

属性 类型 默认值 说明
socketUrl String '' websocket链接地址
websocket WebSocket null WebSocket实例对象
resource String '' WebSocket获取资源成功后返回的资源地址
refreshTimes Function '' WebSocket实例保活定时器
times Function '' WebSocket实例获取排队信息定时器
location Number 0 WebSocket排队队列位置
showWaiting Boolean false 是否在排队等待
showIframe Boolean false 是否已返回资源地址
activeLink Boolean false WebSocket对象是否可用
sum Number 0 WebSocket排队队列总人数

option 中有以下属性

属性 类型 默认值 说明
Authorization String '' 用户身份信息token Authorization
AuthorizationKey String '' 用户鉴权key AuthorizationKey
timesSeconds Number 1000 WebSocket实例获取排队信息定时器 请求间隔
refreshSeconds Number 10000 WebSocket实例保活定时器 请求间隔
onOpenAutoSendMsg Object {messageType: "QUEUE_LOCATION"} 请求排队位置固定参数
openCallback Function 成功连接时的回调函数
messageCallback Function 接收到消息的回调函数
errorCallback Function 错误的回调函数
closeCallback Function 关闭时的回调函数

Events

事件名 参数 说明
send message:Any 需要发送的数据信息
tryLock - 发起排队 .then(res=>{})返回Promise请求结果
removeSocket - 关闭socke连接并标记关闭状态,成功关闭可触发websocket默认关闭事件onclose
returnSource - 主动关闭socke连接并标记关闭状态,成功关闭可触发websocket默认关闭事件onclose
getWebsocket websocket:Object 获取实例化之后的websocket对象
getActiveLink - 获取当前socket标记状态,当值为false时代表整个socket对象处于不可用状态
websocketOnOpen callback:Function(event:Object) websocket连接建立成功时的回调函数
websocketOnMessage callback:Function(event:Object) websocket接收到消息时可触发的回调函数
websocketOnError callback:Function(event:Object) websocket出现连接错误时触发的回调函数
websocketOnClose callback:Function(event:Object) websocket关闭时触发的回调函数

用法示例

import Socket from 'swx-ws-mode'
let socketUrl = "10.1.40.210:8080"

let option = {
   Authorization: 'XXXX',
   AuthorizationKey: 'XXXXX',
   openCallback: res => {
      console.log('建立连接成功', res)
      // ...
   },
   messageCallback: res => {
      // const resData = JSON.parse(res)
      console.log('接收到的消息', res)
      console.log(this.socket)
      this.showIframe = this.socket.showIframe
      this.showWaiting = this.socket.showWaiting
      this.location = this.socket.location
      this.sum = this.socket.sum
      this.resource = this.socket.resource
   }
   //...
}
let ws = new Socket(socketUrl,option) //初始化实例对象
ws.tryLock().then((result) => { //发起排队
   console.log(result)
   if (result.code !== 200 && result.msg !== '') {
      // result.msg 资源占用排队中/未授权,请联系管理员
      // this.$notify({
      // title: '警告',
      // message: `${result.msg}`,
      // type: 'warning'
      // })
   }
}).catch(err => {
   console.log(err)
}) 

//...
//资源断开(会有3分钟间隔归还到资源池)
ws.removeSocket()
//户主动断开链接,立即归还到资源池
ws.returnSource()

Package Sidebar

Install

npm i swx-ws-mode

Weekly Downloads

2

Version

1.7.6

License

MIT

Unpacked Size

24.7 kB

Total Files

6

Last publish

Collaborators

  • suoweixuan