使用javascript通过WebSockets连接到Rserve

时间:2016-01-22 19:10:29

标签: javascript r websocket rserve

我在我的Ubuntu服务器上安装了Rserve。我想使用javascript与它进行交互。我知道rserve npm“提供了websocket Rserve协议的javascript实现”但它似乎不再维护了,我希望能够使用本机javascript(或jQuery等JS库)来实现。 我正在尝试连接并拥有可用作控制台的专用R会话。

这是我的Rserv.conf(来自this文档)

remote enable
websockets.qap enable
websockets.port 8080

这是我的JS

var ws = new WebSocket("ws://my.app:8080");
ws.onopen = function()
{
    ws.binaryType = 'arraybuffer'
    ws.send("Hello world");
    console.log("Message is sent...");
 };

 ws.onmessage = function (evt) 
 { 
      console.log("Message received:"); 
      var received_msg = evt.data;
      console.log(received_msg);
  };

 ws.onclose = function()
 { 
      console.log("Connection is closed..."); 
 };

我收到两条消息:

Message is received:
Rsrv0103QAP1

--------------

Message is received:
ArrayBuffer {}

之后,连接关闭。 如何保持连接打开?如何转换ArrayBuffer以便我可以获得回复的内容?

1 个答案:

答案 0 :(得分:2)

查看rserve-js - 它是JavaScript的完整Rserve客户端,它支持OCAP和普通QAP模式(包括OOB回调)。我们在RCloud中非常广泛地使用它,这也可能是寻找其使用的良好来源(在OCAP模式下,它更安全,适用于Web应用程序) - 特别是因为它实际上做了你自己的事情。试图做(以及更多)。