Js WebSocket简单抽象类实现

/**
 * WebSocket客户端
 */
export abstract class WebSocketClient{
    protected ws:WebSocket;
    
    constructor(){
        
    }

    /**
     * 连接服务器
     * @param serverAddress 服务器地址
     */
    public Connect(serverAddress:string){
        this.ws = new WebSocket("ws://"+serverAddress)
        //设置二进制类型
        this.ws.binaryType = "arraybuffer"; 

        let self = this;
        this.ws.onopen = function (event) {
            self.onConnected()
        };

        this.ws.onmessage = function (event) {
            //console.info("recv"+event.data)
            self.onMessage(event.data)
        };

        this.ws.onerror = function (event) {
            self.onError()
        };

        this.ws.onclose = function (event) {
            self.onDisconnect()
        };
    }

    /**
     * 关闭websocket
     */
    public Close(){
        this.ws.close()
    }

    /**
     * 判断是否连接到websocket服务器
     */
    public isConnected():boolean{
        return (this.ws.readyState === WebSocket.OPEN)
    }

    /**
     * 发送数据
     * @param data 数据
     */
    public sendMessage(data:any){
        if (this.isConnected()){
            this.ws.send(data)
        }else{
            console.error("WebSocket is closed!")
        }
        
    }

    /**
     * 当连接到服务器
     */
    public abstract onConnected()

    /**
     * 当接受到数据
     */
    public abstract onMessage(data:any)

    /**
     * 当出现错误时
     */
    public abstract onError()

    /**
     * 当连接断开时
     */
    public abstract onDisconnect()
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值