请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 249|回复: 6

hpsocket.ssl.httpClient

[复制链接]

10

主题

37

帖子

71

积分
交易币
0

编程一段

Rank: 2

发表于 2019-12-20 15:39:02 | 显示全部楼层 |阅读模式
本帖最后由 StarBalll 于 2019-12-20 15:40 编辑

[aardio] 纯文本查看 复制代码
import win.ui;
/*DSG{{*/
mainForm = win.form(text="WebSocket连接WSS客户端";right=759;bottom=469)
mainForm.add(
button={cls="button";text="Button";left=264;top=318;right=564;bottom=399;db=1;dl=1;dr=1;z=2};
edit={cls="edit";left=18;top=19;right=739;bottom=279;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1}
)
/*}}*/

import hpsocket.ssl.httpClient;
hpHttpClient = hpsocket.ssl.httpClient();
import console
mainForm.edit.threadCallable();
hpHttpClient.threadGlobal = {
        mainForm = mainForm;
}

//监听线程被创建后触发
hpHttpClient.onThreadCreated = function(){}

//监听线程退出前触发此事件
hpHttpClient.onThreadEnd = function(){}

//允许升级为WebSocket协议
hpHttpClient.onUpgrade = function(hpHttpClient,connId,upgradeType){
        if(upgradeType!=1) return -1;
        if( ! hpHttpClient.checkWsUpgradeResponse() ){
                return -1;//验证密钥错误
        }
}
 
//接收到WebSocket请求头
hpHttpClient.onWsMessageHeader = function(hpHttpClient,connId,final,reserved,opCode,mask,bodyLen){ 
    console.log(connId,upgradeType)
        hpHttpClient.reallocString(bodyLen);//初始化缓冲区
}

//接收到WebSocket请求数据
hpHttpClient.onWsMessageBody = function(hpHttpClient,connId,pData,len){ 
        hpHttpClient.appendString(pData,len);
}

//WebSocket请求数据接收完成
hpHttpClient.onWsMessageComplete = function(hpHttpClient){
        var data = hpHttpClient.getString(); 
        if( data ){
                import web.json
                data = web.json.parse(data)
                mainForm.edit.print(data,true)
        }
}

hpHttpClient.onHandShake = function(hpHttpClient,connId){
    var cookie = /*   123123*/
        hpHttpClient.sendWsUpgradeRequest("/websocket",cookie)        
}

hpHttpClient.onClose = function(hpHttpClient,connId,enOperation,errCode){
        hpHttpClient.reallocString(0);
}

hpHttpClient.sslCleanup()
hpHttpClient.sslSetupContext(0,)

hpHttpClient.start(`shopim1.123123.com`,443);


mainForm.show()





//console.log(hpHttpClient.getWsUrl())
mainForm.onClose = function(hwnd,message,wParam,lParam){
    hpHttpClient.stop();
}

mainForm.button.oncommand = function(id,event){
        import web.json
        var tt = //{"cmd":"contact-shop","data":{"shop_id":"2853843","sale_uri":"","from":"https://w.123123.com/webApp/im/buyerChat?r=menu_my&shopId=2853843#openWS"}}
        var json = web.json.parse(tt)
        hpHttpClient.sendWsMessage(web.json.stringify(json))
}


win.loopMessage();

回复

使用道具 举报

2

主题

9

帖子

11

积分
交易币
0

新手入门

Rank: 1

发表于 2019-12-25 18:52:16 | 显示全部楼层
校长,按照这个在ide环境下运行没问题,但是发布之后一直提示HPSocket4C_U.dll找不到,是啥问题?怎么解决一下啊
回复 支持 反对

使用道具 举报

2

主题

9

帖子

11

积分
交易币
0

新手入门

Rank: 1

发表于 2019-12-25 18:57:20 | 显示全部楼层
校长,按照这个在ide环境下运行没问题,但是发布之后一直提示HPSocket4C_U.dll找不到,是啥问题?怎么解决一下啊
回复 支持 反对

使用道具 举报

3

主题

10

帖子

16

积分
交易币
0

新手入门

Rank: 1

发表于 2020-1-7 00:26:40 | 显示全部楼层
很想知道证书是怎么搞定的,实在是没有明白!还望指教!
回复 支持 反对

使用道具 举报

10

主题

37

帖子

71

积分
交易币
0

编程一段

Rank: 2

 楼主| 发表于 2020-1-14 22:54:54 | 显示全部楼层
st.xuehuo 发表于 2020-1-7 00:26
很想知道证书是怎么搞定的,实在是没有明白!还望指教!

客户端不需要证书吧?服务端才需要好像,证书好像也可以为空。
新的WSS有些连接不上的好改库,那个头。

                        ["Sec-WebSocket-Version"] = "13";
                        //["Sec-WebSocket-Protocol"]  = "chat";
                        ["Sec-WebSocket-Key"] = key;
                        //["Sec-WebSocket-Extensions"] = "permessage-deflate; client_max_window_bits=15";
               


两个注释二选一的样子
回复 支持 反对

使用道具 举报

10

主题

37

帖子

71

积分
交易币
0

编程一段

Rank: 2

 楼主| 发表于 2020-1-14 22:55:26 | 显示全部楼层
825106632 发表于 2019-12-25 18:57
校长,按照这个在ide环境下运行没问题,但是发布之后一直提示HPSocket4C_U.dll找不到,是啥问题?怎么解决 ...

应该不会啊,用得好好的啊。
回复 支持 反对

使用道具 举报

2

主题

9

帖子

11

积分
交易币
0

新手入门

Rank: 1

发表于 2020-1-16 11:48:04 | 显示全部楼层
谢谢,已搞定
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



GMT+8, 2020-2-25 21:04 , Processed in 0.117747 second(s), 25 queries .

© 2001-2011 Powered by Discuz! X3.2.

快速回复 返回顶部 返回列表