簡體   English   中英

Websocket連接關閉,錯誤1006(Webdis)

[英]Websocket connection closes with error 1006 (Webdis)

我在Debian 7 32上使用Redis + Webdis。

我的問題是在完成第一個命令后,所有websocket連接都用退出代碼1006關閉(“SUBSCRIBE”除外)。 例如,對於這個testJSON()函數

function testJSON() {
  var jsonSocket = new WebSocket("ws://ip:7379/.json");
  jsonSocket.onopen = function() {
    console.log("JSON socket connected!");
    jsonSocket.send(JSON.stringify(["SET", "hello", "world"]));
    jsonSocket.send(JSON.stringify(["GET", "hello"]));
  };
  jsonSocket.onmessage = function(messageEvent) {
    console.log("JSON received:", messageEvent.data);
  };
  jsonSocket.onclose = function(messageEvent) {
    //some logging
  };
  jsonSocket.onerror = function(messageEvent) {
    //some logging
  };
}
testJSON();

我得到了(在Firebug中)

JSON socket connected!
JSON received: {"SET":[true,"OK"]}
onClose: error.code 1006

onError事件無法正常工作,在{“SET”:[true,“OK”]}響應后,我的連接關閉。 GET命令也不起作用。 Firefox和Chrome中的行為相同。 我檢查了標題,看起來它們是有效的。

有什么建議?

好的,這是一個功能,而不是bug。 在代碼( websocket.c )中:

if (cmd_is_subscribe(cmd)) {
    r->keep_alive = 1;
}

更改此代碼解決了我的部分問題,但並非全部問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM