|
100精币
代码如下 连接服务器20分钟后不能自动重连跪求大神
.版本 2
.支持库 spec
.支持库 EThread
.子程序 连接服务器
e = ws.linkstart (“ws://58.82.213.151:9601?username=111&password=123456”, &onopen, &onmessage, &onclose, &onerror)
.如果真 (e = 0)
编辑框1.加入文本 (到文本 (取现行时间 ()) + “ 连接失败......” + #换行符)
信息框 (“连接失败”, 0, , )
.如果真结束
' WS_Start (“ws://139.9.73.136:39500”)
.子程序 onopen
.参数 evt, 整数型
.局部变量 hand, WebSocket
.如果真 (e ≠ 0)
hand = ws.reinterpret_cast (e)
.如果真 (hand.readyState () ≠ hand.OPEN ())
返回 ()
.如果真结束
hand.send (#登录包)
.如果真结束
编辑框1.加入文本 (到文本 (取现行时间 ()) + “ 连接成功......” + #换行符)
调试输出 (“连接成功”)
.子程序 onmessage
.参数 evt, 整数型
.局部变量 hand, WebSocket
.局部变量 text, 文本型
.局部变量 json, 类_Json
hand = ws.reinterpret_cast (evt) ' 将对象指针转换为"WebSocket"对象
.如果 (hand.cursor () = hand.TEXT ())
' 编辑框_消息.加入文本 (“[event]: ”, 编码_Utf8到Ansi (到字节集 (hand.copyTextBuffer ())), #换行符)
text = 编码_Utf8到Ansi (到字节集 (hand.copyTextBuffer ()))
调试输出 (text)
json.解析 (text)
.如果真 (json.取属性 (“cmd”).取数据文本 () = “6”)
md5key = json.取通用属性 (“md5key”)
deveiceid = json.取属性 (“deveiceid”).取数据文本 ()
调试输出 (md5key, deveiceid)
.如果真结束
.如果真 (json.取属性 (“cmd”).取数据文本 () = “3”)
回调 (到文本 (到整数 (json.取属性 (“money”).取数据文本 ())), json.取通用属性 (“remark”))
.如果真结束
.否则
' 编辑框_消息.加入文本 (“[event]: !(binary)”, #换行符)
.如果结束
.子程序 onerror
.参数 evt, 整数型
.局部变量 hand, WebSocket
调试输出 (“连接断开1”)
编辑框1.加入文本 (到文本 (取现行时间 ()) + “ 连接断开......” + #换行符)
hand = ws.reinterpret_cast (e) ' 将对象指针转换为"WebSocket"对象
hand.close () ' 关闭连接
.判断循环首 (hand.readyState () ≠ hand.CLOSED ()) ' 等待连接关闭完成
延时 (100)
.判断循环尾 ()
ws.destory (e) ' 销毁对象指针,销毁后该指针不在可用
e = 0
启动线程 (&连接服务器, , )
.子程序 onclose
.参数 evt, 整数型
.局部变量 hand, WebSocket
调试输出 (“连接断开2”)
编辑框1.加入文本 (到文本 (取现行时间 ()) + “ 连接断开......” + #换行符)
hand = ws.reinterpret_cast (e) ' 将对象指针转换为"WebSocket"对象
hand.close () ' 关闭连接
.判断循环首 (hand.readyState () ≠ hand.CLOSED ()) ' 等待连接关闭完成
延时 (100)
.判断循环尾 ()
ws.destory (e) ' 销毁对象指针,销毁后该指针不在可用
e = 0
启动线程 (&连接服务器, , )
|
|