0

これが私が取り組んでいるものです:

webserver.py:

import sys

from twisted.internet import reactor
from twisted.python import log

from autobahn.websocket import WebSocketServerFactory, \
                               WebSocketServerProtocol, \
                               listenWS


class EchoServerProtocol(WebSocketServerProtocol):

   def onMessage(self, msg, binary):
      print "sending echo:", msg
      self.sendMessage(msg, binary)


if __name__ == '__main__':

   log.startLogging(sys.stdout)

   factory = WebSocketServerFactory("ws://localhost:9000", debug = False)
   factory.protocol = EchoServerProtocol
   listenWS(factory)

   reactor.run()

background.js:

function updateCookies(info) {
    send();
    console.log(info.cookie.domain);
}

function send() {
    msg = "TEST";
    sock.send(msg);
};

var sock = null;
sock = new WebSocket("ws://localhost:9000");
console.log("Websocket created...");

sock.onopen = function() {
    console.log("connected to server");
    sock.send("CONNECTED TO YOU");
}

sock.onclose = function(e) {
    console.log("connection closed (" + e.code + ")");
}

sock.onmessage = function(e) {
    console.log("message received: " + e.data);
}

chrome.cookies.onChanged.addListener(updateCookies);

ここで、webserver.pyを実行してbackground.jsを実行しても、何も起こりません。クライアントにはエコーがなく、サーバーは接続やメッセージを報告しません。しかし、background.jsをリロードすると、突然「CONNECTEDTOYOU」という前のメッセージがサーバーに表示されます。再度リロードすると同じ効果が得られ、「CONNECTEDTOYOU」メッセージが遅れて表示されます。メッセージを送信した後にsock.close()を実行しようとしましたが、それでも何も生成されません。このランダムな遅延の原因について、私は本当に混乱しています。サーバーを10〜15分間実行したままにしても何も生成されないため、メッセージが表示される前に手動でページを更新する必要があります。これを引き起こしている可能性のあるアイデアはありますか?

4

0 に答える 0