zoukankan      html  css  js  c++  java
  • websocket实例使用说明

    ## websocket

    ## websocket 实例使用说明

    ``` vue
        import Io from 'utils/websocket'
        ...
        data () {
            return {
                ...
                socket: new Io()
            }
        }
        ...
        ...
        this.socket.connect('ws://...')
        ...
    ```
    1. 实例路径

       utils/websocket.js

    2. 实例属性

    方法名 | 含义 | 类型 |参数
    ---|---|---|--
    connect | 建立 socket 连接 | function | url
    on | 监听事件|function|eventName, callback
    emit | 触发事件 |function|eventName, data
    disconnect | 关闭 socket 连接  |function| 无
    JSONparse| 将数据格式转换为json| function | data
    io.readyState| 只读属性 readyState 表示连接状态 | Number | 0/1/2/3


    2-1. on 方法参数(事件参数仅支持原生 socket 事件,不支持自定义事件)

    参数名 | 含义 | 类型 |
    ---|---|---|--
    open | 连接建立时触发 | String |
    message | 客户端接收服务端数据时触发|String|
    error | 通信发生错误时触发 |String|
    close | 连接关闭时触发  | String | 
    callback | 回调函数  | function | 

    2-2. emit 方法参数 (支持自定义事件)

    参数名 | 含义 | 类型 |
    ---|---|---|--
    eventName | 自定义事件名 | String |
    data | 发送给后端的数据  | object/String | 

    2-3 io.readyState

    值 | 含义 | 
    ---|---|
    0 | 表示连接尚未建立 | 
    1 | 表示连接已建立,可以进行通信 |
    2 | 表示连接正在进行关闭 |
    3 | 表示连接已经关闭或者连接不能打开  | 

    ```JS

    this.socket = io.connect('ws://192.168.3.196:8080/policeBusiness/websocket/tarInAreaAlarmSocket/12');

    console.log(this.socket.io.readyState); // 连接中,打印值为 0

    this.socket.on('open', () => {
        // 连接建立后触发此事件
        console.log(this.socket.io.readyState); // 连接成功,打印值为 1
        do something...
    })

    this.socket.on('message', resp => {
        // 接收到推送的数据后触发此事件
        // 对接收到的数据进行转换
        let data = this.socket.JSONparse(resp.data);
        
        do something...
    })

    this.socket.on('error', () => {
        // 连接出错触发此事件
        do something...
    })

    this.socket.on('close', () => {
        // 连接断开触发此事件
        do something...
    })

    // 触发一个自定义事件,给后端传输数据,通过监听 message 事件接收数据
    this.socket.emit('some event', data);

    this.socket.on('message', resp => {

        // 对接收到的数据进行转换
        let data = this.socket.JSONparse(resp.data);
        // 接收到后端传过来得数据时对数据包得标签进行判断,判断条件为 emit 中的 eventName 
        if (data.eventLabel === 'some event') {
            do something...
        }
    })

    ```


  • 相关阅读:
    02-CSS基础与进阶-day4_2018-08-31-20-42-09
    02-CSS基础与进阶-day4__2018-08-31-20-22-57
    02-CSS基础与进阶-day3_2018-08-29-21-30-56
    02-CSS基础与进阶-day3_2018-08-29-20-39-58
    02-CSS基础与进阶-day3_2018-08-29-20-20-56
    02-CSS基础与进阶-day2_2018-08-27-22-00-56
    02-CSS基础与进阶-day2__2018-08-27-21-27-31
    02-CSS基础与进阶-day2_2018-08-27-20-57-55
    Pytest(12)pytest缓存
    Pytest(11)allure报告
  • 原文地址:https://www.cnblogs.com/yangshuzhong/p/13401918.html
Copyright © 2011-2022 走看看