function TWebSocket(opt) {
var that = this;
that.isWS = !!window.WebSocket;
that.isOpen = false;
that.autoConnect = false;
that.options = opt;
if (that.options.reconnect) that.autoConnect = true;
that._connect.call(that);
}
TWebSocket.prototype.send = function (e) {
var that = this;
if (that.isOpen) {
that._WS.send(e);
return true;
}
return false;
}
TWebSocket.prototype._connect = function () {
var that = this;
try {
that._WS = new WebSocket(that.options.url);
that.isWS = true;
} catch (_) {
that._WS = null;
}
if (that.isWS) {
that._WS.onopen = function (e) {
that.isOpen = true;
if (that.options.onopen) {
that.options.onopen.call(that, e);
}
}
that._WS.onclose = function (e) {
that.isOpen = false;
if (that.autoConnect) that.reconnect();
if (that.options.onclose) {
that.options.onclose.call(that, e);
}
}
that._WS.onerror = function (e) {
that.isOpen = false;
if (that.autoConnect) that.reconnect();
if (that.options.onerror) {
that.options.onerror.call(that, e);
}
}
that._WS.onmessage = function (e) {
if (that.options.onmessage) {
that.options.onmessage.call(that, e);
}
}
}
}
TWebSocket.prototype.reconnect = function (t) {
var that = this;
if (!that.isOpen) {
if (that._RCT) clearTimeout(that._RCT);
that._RCT=setTimeout(function () {
that._connect.call(that);
}, isNaN(t) ? 5000 : t * 1000)
}
}
var myWs = new TWebSocket({
url: "ws://127.0.0.1:8132",
reconnect: true,//自动重连
onerror:function(e){
},
onmessage: function (msg) {
console.log(msg.data);
}
});
myWs.send("send data");