原创:Javascript Websocket客户端封装
调试中,马马虎虎能用
var LeesWebSocket = function (options) {
this.defaults = {
host: "127.0.0.1",
port: 2015, // callbacks
onOpen: function () { },
onClose: function () { },
onMessage: function (evt) { },
onError: function () { }
}
//调试用---------------------------
mLCQ = new LeesCircleQueue(40); function Trace(s) {
var t = new Date(); mLCQ.Push(t.getHours() + ":" + t.getMinutes() + ":" + t.getSeconds() + " :" + s + "<br>");
showDebuginfo();
}
function showDebuginfo() {
var ss = mLCQ.GetAllItem();
var sb = ''; for (var i = 0; i < ss.length; i++) {
sb += (i + 1) + ":" + ss[i] + "<br>";
}
$('#debug').html(sb);
}
//-------------------------------
//-------------------------------
var opt = $.extend({}, this.defaults, options);
var _this = this;
var wsSocket = null;
this.bIsConnected = false;
var bIsConnecting = false;
this._LWS_Host = "ws://" + opt.host + ":" + opt.port; this.Connect = function () {
if (bIsConnecting)
return;
bIsConnecting = true;
try {
if ("WebSocket" in window) {
wsSocket = new WebSocket(this._LWS_Host);
}
else if ("MozWebSocket" in window) {
wsSocket = new MozWebSocket(this._LWS_Host);
}
wsSocket.onopen = WSonOpen;
wsSocket.onclose = WSonClose;
wsSocket.onmessage = WSonMessage;
wsSocket.onerror = WSonError;
} catch (ex) {
alert(ex);
}
bIsConnecting = false;
}
this.Send = function (s) {
Trace(s);
if (_this.bIsConnected) {
wsSocket.send(s);
return true;
}
return false;
}
this.IsConnected = function () {
return this.bIsConnected;
}
function WSonOpen() {
_this.bIsConnected = true;
opt.onOpen(); }
function WSonMessage(evt) {
opt.onMessage(evt); }
function WSonClose() {
_this.bIsConnected = false;
wsSocket = null;
opt.onClose(); }
function WSonError(evt) {
_this.bIsConnected = false;
wsSocket = null;
opt.onError(); }
}
原创:Javascript Websocket客户端封装的更多相关文章
- [原创]Javascript模拟“类”的综合实现方式以及部分细节【截至ES6】
[原创]Javascript模拟“类”的综合实现方式以及部分细节[截至ES6] 前言 最近几个旧项目里使用的图片编辑插件出现Bug, 经Review 后确定需要在其内外均做些改动,但是头疼的发现部 ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...
- netty系列之:使用netty搭建websocket客户端
目录 简介 浏览器客户端 netty对websocket客户端的支持 WebSocketClientHandshaker WebSocketClientCompressionHandler netty ...
- JavaScript获取客户端计算机硬件及系统等信息的方法
JavaScript获取客户端计算机硬件及系统等信息的方法 JavaScript 获取客户端计算机硬件及系统信息 通过WMI来实现获取客户端计算机硬件及系统信息: function getSysInf ...
- javascript通用事件封装
随着最近几年Html5的兴起,越来越多的应用采用html5进行实现,一个优秀的网页应用不但需要美观简洁的UI界面,更需要一个良好的交互.网页应用大部分的交互需要用javascript事件进行实现.虽然 ...
- 我自己的Javascript 库,封装了一些常用函数 Kingwell.js
我自己的Javascript 库,封装了一些常用函数 Kingwell.js 博客分类: Javascript javascript 库javascript库 现在Javascript库海量,流行的 ...
- 用javascript得到客户端IP的新方法
javascript得到客户端IP的新方法 很久以来,我都是经过http://fw.qq.com/ipaddress来得到客户端用户的IP,这个方法简单.快速.实用 . 我们调用它的写法是: < ...
- 【转】SocketRocket:iOS WebSocket客户端开源框架
原文网址:http://blog.csdn.net/zmp1123/article/details/44015507 WebSocket: WebSocket通信协议实现的是基于浏览器的原生socke ...
- JavaScript设计模式之一封装
对于熟悉C#和Java的兄弟们,面向对象的三大思想(封装,继承,多态)肯定是了解的,今天我想讲讲如何在Javascript中利用封装这个特性,开讲! 我们会把现实中的一些事物抽象成一个Class并且把 ...
随机推荐
- unity3d NGUI多场景共用界面制作
1创建单独编辑UI的unity场景 UIScene.unity 用来做UI面界 ,创建Resources文件存放UI界面的prefab,代码里动态load资源仅仅能从Resources目录载入 2创建 ...
- 关于Log4j的初始化
1Log4j是什么 Log4j是Apache比較优秀的开源项目.在各个平台和项目中有较为广泛的应用.是为JAVA平台开发的日志管理平台.同一时候,Log4j也是JAVA开发项目中使用比較普遍的日 ...
- .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二)
.net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二) .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (一) 上一篇主 ...
- C#_delegate - combine function
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Dele ...
- Ⅳspring的点点滴滴--方法和事件
承接上文 方法和事件 .net篇(环境为vs2012+Spring.Core.dll v1.31) public abstract class MethodDemo { protected abstr ...
- TextView设置动态改变颜色
通过TextView的setTextColor方法进行文本颜色的设置, 这里可以有3种方式进行设置: 第1种:tv.setTextColor(android.graphics.Color.RED);/ ...
- [置顶] c++,vc6.0,中友元函数,无法访问私有字段(private)的问题(problem),cannot access private member declared in class 'Date'
c++,vc6.0,中友元函数,无法访问私有字段(private)的问题(problem),cannot access private member declared in class 'Date' ...
- mapping 详解2(field datatypes)
基本类型 1. 字符串 字符串类型被分为两种情况:full-text 和 keywords. full-text 表示字段内容会被分析,而 keywords 表示字段值只能作为一个精确值查询. 参数: ...
- myeclipse连接数据库遇到的几个问题
1:无效的SQL URL: //将获取的参数插入数据库 Connection conn=null; PreparedStatement stat=null; ...
- GitHub 中国区前100 名技术专家
[本文是在一片新闻上摘录的,原地址为:http://mt.sohu.com/20160407/n443539407.shtml] 本文根据Github公开API,抓取了地址显示China的用户,根据粉 ...