0

我想使用 R 启动 Interative Brokers wbsocket。以下是 IB 关于如何启动 websocket 的文档:https ://interactivebrokers.github.io/cpwebapi/RealtimeSubscription.html

我已通过网关成功连接到 IB REST aAPI,我可以调用所有必需的 endoint,但对于会话数据,我更复杂,如您在文档中看到的那样。

一般来说,我对 websockets 的经验为 0。我找到了httpuv包并startServer从包中找到,但无法弄清楚事件如何开始。这是我的尝试,可能甚至接近:

library(httpuv)


session_value = ib_post()
session_value = session_value$session

# start ws
url = "wss://api.ibkr.com/v1/api/ws"
# A WebSocket echo server that listens on port 8080

startServer(url, 5000,
            list(
              onHeaders = function(req) {
                # Print connection headers
                cat(capture.output(str(as.list(req))), sep = "\n")
              },
              onWSOpen = function(ws) {
                cat("Connection opened.\n")
                ws$onMessage(function(binary, message) {
                  cat("Server received message:", message, "\n")
                  ws$send(message)
                })
                ws$onClose(function() {
                  cat("Connection closed.\n")
                })
              }
            )
)

但我收到一个错误:

wss://api.ibkr.com/v1/api/ws is not a valid IPv4 or IPv6 address.
createTcpServer: Unknown system error 1
Error in initialize(...) : Failed to create server

有人可以解释一下如何解决这个问题吗?

4

0 回答 0