很好很好的WebSocket客户端模块来了!

Posted aardio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了很好很好的WebSocket客户端模块来了!相关的知识,希望对你有一定的参考价值。

这个WebSocket客户端基于单线程异步套接字,只要监听事件就可以方便的收发数据,不卡界面,不需要用到多线程!一切都变得非常简单。对于WebSocket客户端来说,去弄什么多线程只会把简单的事不必要的搞复杂。


支持双向心跳,单向心跳,可以断线重连,下面是一个简单的例子(可以在"aardio范例->网络应用->WebSocket"找到下面的代码):

import win.ui;
/*DSG{{*/
var winform = win.form(text="WebSocket客户端演示";right=770;bottom=467)
winform.add(
btnClose={cls=
"button";text="断开";left=556;top=293;right=710;bottom=331;db=1;dr=1;z=6};
btnOpen={cls=
"button";text="连接WebSocket服务端";left=381;top=293;right=535;bottom=331;db=1;dr=1;z=2};
btnSend={cls=
"button";text="发送数据";left=569;top=346;right=711;bottom=426;db=1;dr=1;z=4};
txtMessage={cls=
"edit";left=29;top=22;right=741;bottom=285;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1};
txtSend={cls=
"edit";text="WebSocket测试";left=29;top=348;right=558;bottom=423;db=1;dl=1;dr=1;edge=1;multiline=1;z=3};
txtUrl={cls=
"edit";text="ws://121.40.165.18:8088";left=29;top=295;right=368;bottom=331;db=1;dl=1;dr=1;edge=1;z=5}
)
/*}}*/

import web.socket.client;
var ws = web.socket.client();

ws.onOpen = 
function(){
    ws.send(
"服务端你好吗?!")
}

ws.onClose = 
function(){
    winform.txtMessage.print(
"onClose");
}

ws.onError = 
function(err){
    winform.txtMessage.print(
"onError",err);
}

ws.onMessage = 
function(msg){
    winform.txtMessage.print(msg.data); 
}


winform.btnSend.oncommand = 
function(id,event){
    ws.send(winform.txtSend.text)   
}

winform.btnOpen.oncommand = 
function(id,event){
    ws.connect(winform.txtUrl.text);
}

winform.btnClose.oncommand = 
function(id,event){
    ws.close();
}

winform.txtUrl.text = 
"ws://121.40.165.18:8088";
ws.originUrl = 
"http://www.blue-zero.com";

winform.show() 
win.loopMessage();


JS里写的是ws.onemessage,我给改成了 ws.onMessage,

这个东西,要灵活的变通,没必要非要搞的跟别的语言一模一样,

只要好用就可以。


以上是关于很好很好的WebSocket客户端模块来了!的主要内容,如果未能解决你的问题,请参考以下文章

以前手机的双电双充明明很好很实用的设计,为什么会消失?

Tornado-长轮询_webSocket

StarUML---推荐一款UML工具(很好很强大)

POJ题目分类推荐 (很好很有层次感)

开单铁律--总结的很好很经验之谈

很好的 DHCP协议与dhcpcd分析