我想使用 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
有人可以解释一下如何解决这个问题吗?