/**
* 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()
}
Js WebSocket简单抽象类实现
最新推荐文章于 2024-05-31 08:49:34 发布