# aardio 范例: WebSocket/JSON-RPC 2.0 客户端，支持 wss 协议 



```aardio
//WSS-JSON-RPC客户端
import win.ui;
/*DSG{{*/
var winform = win.form(text="WebSocket/JSON-RPC 2.0 客户端，支持 wss 协议 ";right=770;bottom=467)
winform.add(
btnConnect={cls="button";text="连接WebSocket/JSON-RPC 2.0服务端";left=456;top=414;right=737;bottom=459;db=1;dr=1;z=3};
txtMessage={cls="edit";left=29;top=22;right=741;bottom=409;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1};
txtUrl={cls="edit";text="ws://localhost:8879/jsonrpc";left=32;top=418;right=450;bottom=457;db=1;dl=1;dr=1;edge=1;z=2}
)
/*}}*/

import web.SocketSharp.JsonClient;
var ws = web.SocketSharp.JsonClient();

//监听服务端事件
ws.on("hello",function(param){
    winform.txtMessage.print("来自服务端的消息：",param );
}) 

//打开连接触发的事件
ws.on("open",function(){ 
	 
    tab = ws.$hello("你好吗")  
 
    tab.end = function(result,err){
    	 winform.txtMessage.print(result,err)
    } 
     
})

ws.on("close",function(){
    winform.txtMessage.print("已关闭连接")       
});

ws.on("error",function(err){ 
    winform.txtMessage.print("出错了",err);
});  

//发布订阅模式：订阅服务器的指定频道,支持接收不定个数的参数
ws.on("serverTime",function(param){
	winform.txtMessage.print("服务端发布了当前时间：",param );		
});

//调查模式：应答服务器提出的调查任务,支持接收不定个数的参数
ws.on("clientTime",function(){
	return time()	
});
 
//连接chrome
winform.btnConnect.oncommand = function(id,event){
    ws.connect(winform.txtUrl.text);
}
 
winform.show() 
win.loopMessage();
```

