2016-01-22 91 views
2

我在我的Ubuntu服務器上安裝了Rserve。我想用JavaScript來與它互動。我知道rserve npm「提供了websocket Rserve協議的JavaScript實現」,但它似乎不再被維護,我希望能夠用原生JavaScript(或JS庫,如jQuery)來實現它。 我正在嘗試連接並擁有可用作控制檯的專用R會話。使用javascript通過WebSockets連接到Rserve

這是我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以便我可以獲取響應的內容?

回答

2

看看rserve-js - 這是一個完整的Rserve JavaScript客戶端,它支持OCAP和純QAP模式(包括OOB回調)。我們非常廣泛地使用它在RCloud這也可能是一個很好的來源來尋找它的使用(在OCAP模式,這是更安全和適用於Web應用程序) - 它特別是因爲它實際上做你想做的事情(和很多更多)。

+0

謝謝我的朋友 – Wistar