作者nepholi (我不是炮哥)
看板C_and_CPP
标题[问题] Websocket使用套件websocketpp
时间Tue Aug 1 16:25:24 2023
--
※已找到问题,解释写在最後※
--
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux Ubuntu 20.04
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
g++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
Websocketpp
Boost
Openssl
问题(Question):
为了开发连上加密货币交易所的websocket开始做功课
找到websocketpp这个套件的github提供范例程式且成功demo到未加密的阶段
https://reurl.cc/EoNvd0
但在step7改成加密连线後却在connect server时
得到回传错误"Connection creation attempted failed"
喂入的资料(Input):
connect wss://ws.kraken.com
(加密货币交易所Kraken的websocket)
预期的正确结果(Expected Output):
Websocket连线上,後续要输入特定的json格式得到报价ticker
错误结果(Wrong Output):
"Connection creation attempted failed"
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
https://ideone.com/WewHMt
补充说明(Supplement):
经过追查问题应该是出在150行的m_endpoint.get_connection()
但查进去却看不出来问题在哪 囧
另外看了记载error code的websocketpp/error.hpp里面的注解也只写
"Connection creation attempted failed"
------------------
Fixed:
某位大大提醒我 don't trust examples
并且随口题点了几个检查的地方
最後是发现如果要用加密websocket要在connect之前set_tls_init_handler
我把他写在connect之後了 难怪连线的时候被拒绝
FYI
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.220.68.81 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1690878327.A.312.html
※ 编辑: nepholi (61.220.68.81 台湾), 08/01/2023 16:29:07
1F:→ school4303: 有参考过ccapi吗 我记得它好像也有用到websocketpp 08/01 17:25
2F:→ school4303: 也有support Kraken 08/01 17:26
感谢 迫於时程我只能继续看已经完成8成左右的websocketpp
但也有资深的大大建议我去看看ccapi 之後有空会看看
※ 编辑: nepholi (61.220.68.81 台湾), 08/01/2023 17:29:40
3F:推 kyushu: 只能说websocketpp的范例真的不详尽 08/03 20:54