webnet

webnet1.0/2.0

webnet1.0

webnet1.0依赖的是定时器轮询,需要根据项目的请求方式进行修改,比如原生请求或者是axios。首次连接返回报文如下:

parent.WebNet.ONMESSAGE('D||0|123|P1000')

以|为分隔符,第三位是状态码,第四位是term(之后的请求需要拼接到url上) webnet1.0的API大部分与webnet2.0的API保持一致,方便替换升级。

API

属性

类型

说明

webnetUrl

string

webnet推送地址

title

string

webnet订阅title,用于订阅指定业务品种牌价

active

boolean

当前链接是否已经建立,首次建立连接成功时状态修改为true,触发onOpenEvent函数

stop

boolean

当前链接是否已经停止,重新启动调用reconnect函数

interval

number

定时器轮询请求时间间隔

term

string

根据请求返回自动填充

onLoginOK

function

onError

function

收到的数据中状态码不是成功时触发

managerAPI

object

操作webnet行为的集合

~.closeWebnet

function

主动关闭连接,触发onCloseEvent

~.reconnect

function

重新建立连接

事件(event)

子类需重新实现。

onOpenEvent:指定连接成功后的回调函数

onMessageEvent:指定当从服务器接受到信息时的回调函数,子类在这里实现对数据的处理

onErrorEvent:指定连接失败后的回调函数

onCloseEvent:指定连接关闭后的回调函数

其他

以下函数不会被子类重写:

connect: 建立连接 fetch: 轮询的主体函数,需要根据不同项目修改轮询的请求函数,目前使用的是axios 。

WebNetData: 接收数据的解析模板 ,无需改动。

ONMESSAGE: 对接收到的数据做初步解析,首次成功建立连接时触发onOpenEvent和onMessageEvent函数,之后只触发onMessageEvent函数

示例

class WebnetDemo extends WebnetManager {
  constructor() {
    super();
    this.webnetUrl = '';
    this.title = '';
  }

  onMessageEvent = (response) => {
    console.log('WebnetDemo onMessageEvent', response)
  }
}

class Login extends Component {
  constructor(props) {
    super(props);
    this.webnet = new Webnet();
  }
  
  componentDidMount() {
    // 连接
    this.webnet.connect();
  }
  
  componentWillUnmount() {
    // 关闭连接
    this.webnet.managerAPI.closeWebnet();
  }
  
  render() {
    return <div></div>
  }
}

webnet2.0

基于H5 websocket的封装

API

属性

类型

说明

webnetUrl

string

webnet推送地址

title

string

webnet订阅title,用于订阅指定业务品种牌价

exceptionClose

boolean

是否是异常关闭的标识,异常关闭则主动发起重新连接,存在主动关闭webnet连接的情况,异常关闭和主动关闭都会触发onclose, 默认为true,主动关闭时状态变更为false,连接成功时状态变更为true

needReconnet

boolean

异常关闭时是否需要重新连接,默认值:true

reconnetNum

number

异常关闭后尝试重新连接次数,默认值:3

reconnetInterval

number

异常关闭后尝试重新连接时间间隔,单位ms,默认为10000ms

managerAPI

object

操作websocket行为的集合

~.interval

用于managerAPI创建重新连接定时器的占位符

~.reconnect

function

重新连接函数

~.reconnectCancle

function

取消重新连接

~.reconnectError

function

单次尝试重新连接失败回调

~.reconnectFailed

function

重新连接次数为0时触发,重新连接失败

~.closeWebnet

function

关闭当前链接

~.send

function

向服务器发送数据

事件(event)

子类需重新实现。

onOpenEvent: 指定连接成功后的回调函数

onMessageEvent: 指定当从服务器接受到信息时的回调函数,子类在这里实现对数据的处理

onErrorEvent: 指定连接失败后的回调函数

onCloseEvent: 指定连接关闭后的回调函数

其他

以下函数不会被子类重写:

connect: 建立连接

setWebnetEvent: 设置websocket事件

getReadyState: 获取websocket当前的状态

status

说明

undefined

未连接

0

WebSocket.CONNECTING

1

WebSocket.OPEN

2

WebSocket.CLOSING

3

WebSocket.CLOSED

示例

class Webnet extends WebnetManager {
  constructor() {
    super();
    this.webnetUrl = '';
    this.title = '';
  }

  onOpenEvent = () => {
    // 连接成功回调
    console.log('WebnetDemo onOpenEvent')
  }

  onMessageEvent = (response) => {
    // 处理推送的数据
    console.log('WebnetDemo onMessageEvent')
  }
}

class Login extends Component {
  constructor(props) {
    super(props);
    this.webnet = new Webnet();
  }
  
  componentDidMount() {
    // 连接
    this.webnet.connect();
  }
  
  componentWillUnmount() {
    // 关闭连接
    this.webnet.managerAPI.closeWebnet();
  }
  
  render() {
    return <div></div>
  }
}

Last updated

Was this helpful?