首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用kdb+ q连接到websocket作为客户端后向服务器发送消息

如何使用kdb+ q连接到websocket作为客户端后向服务器发送消息
EN

Stack Overflow用户
提问于 2021-02-08 23:22:57
回答 1查看 318关注 0票数 1

我正在Q中构建一个websocket客户端,目的是连接到加密货币交易所,接收json中的公共市场数据提要,以便解析为kdb。在这一点上,使用这是KX官方知识库的指南,我已经设法创建了一个持久的websocket连接,从我的Q进程到Kraken交换,通过成功的连接/升级响应验证了stunnel。我的Q脚本只是定义了.z.ws来显示传入的消息,然后连接到我的本地端口运行特技。

代码语言:javascript
复制
.z.ws:{0N!.j.k(x);}

h:(`:ws://127.0.0.1:5103)"GET / HTTP/1.1\r\nHost: ws.kraken.com\r\n\r\n" 

我的特技配置如下:

海怪

客户=是

sni = ws.kraken.com

接受= 127.0.0.1:5103

连接= 104.16.212.191:443

这一切似乎都有效,因为正如前面提到的,我的Q进程收到了以下成功的系统状态确认。

代码语言:javascript
复制
`connectionID`event`status`version!(9.223372e+18;"systemStatus";"online";"1.7.2")

指南说,“如果成功,它将返回一个2项列表(句柄;HTTP响应)”,我也收到了。它们看起来是这样的:

代码语言:javascript
复制
(6i ;"HTTP/1.1 101 Switching Protocols\r\nDate: Mon, 08 Feb 2021 22:52:53 GMT\r\nConnection: upgrade\r\nSet-Cookie: __cfduid=d8179f7ef5db4e4e7a164dd75a492c2141612824773; expires=Wed, 10-Mar-21 22:52:53 GMT; path=/; domain=.kraken.com;HttpOnly; SameSite=Lax\r\nUpgrade: websocket\r\nSec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=\r\nuWebSockets:17\r\nCF-Cache-Status: DYNAMIC\r\ncf-request-id: 082..)

我真的认为这将是困难的部分,我感到有些骄傲,到目前为止,但现在我发现自己再次陷入困境。

我现在如何与websocket交互?我想发送更多的信息。订阅/取消订阅特定端点?

上面引用的指南非常清楚地说明了“发送信息,使用

代码语言:javascript
复制
q)neg[handle]"text" / a char vector"

但每当我尝试

代码语言:javascript
复制
q)neg[6i].j.j(`ping)

我得到以下错误

代码语言:javascript
复制
'Cannot write to handle 6. OS reports: Bad file descriptor 

我怀疑我可能需要在最初的GET请求中以某种方式订阅某些端点,但在连接到websocket之后,我仍然希望能够自由地从不同的端点订阅和取消订阅。

谢谢你的阅读,任何见解都是非常感谢的。这是我第一次在堆栈溢出上发帖。

向你问好,罗斯

EN

回答 1

Stack Overflow用户

发布于 2021-02-10 18:39:28

该错误可能与您的邮件被拒绝有关。我快速地看了一下python示例,它看起来像这样期望json:

代码语言:javascript
复制
{"event": "ping"}

So you'd need to send something like this:

q).j.j(1#`event)!1#`ping
"{\"event\":\"ping\"}"

https://support.kraken.com/hc/en-us/articles/360022327631-WebSocket-API-Public-Feeds-Python-Code-Examples

Aqua为其TorQ kdb框架提供了一个Crypto外接程序,它可能很有用:

https://www.aquaq.co.uk/q/torq-crypto-released/

https://github.com/AquaQAnalytics/TorQ-Crypto

(免责声明,我为Aqua Q工作)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66110816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档