如何在不使用消息回调的情况下从R中的httpuv服务器发送WebSocket消息



我设置了一个简单的httpuv WebSocket服务器,它可以接收来自WebSocket客户端的消息,并在收到消息后回显。

例如:

library(httpuv)
s <- startServer("0.0.0.0", 8080, 
list(
onWSOpen = function(ws) {
ws$onMessage(function(binary, message) {
ws$send(message)
})
})
)

是否可以在ws$onMessage回调之外向WebSocket客户端发送消息?

作为一个如何构建语法的例子,我希望能够调用:s$ws$send("Hello")并将Hello发送到客户端,而不需要客户端消息/使用任何回调函数。

为了回答我自己的问题,我发现使用R:中的超级赋值运算符是可能的

library(httpuv)
w <- NULL
s <- startServer("0.0.0.0", 8080, 
list(
onWSOpen = function(ws) {
w <<- ws  # Now, the WebSocket object persists in the global environment
ws$onMessage(function(binary, message) {
ws$send(message)
})
})
)
# Wait for client to connect...
w$send("Hello")  # Send message to the client

相关内容

  • 没有找到相关文章

最新更新