gevent-socketio与Python瓶

时间:2015-05-20 18:42:05

标签: python websocket socket.io bottle gevent

我正在尝试整理一个使用gevent-socketio并遇到麻烦的Python瓶子应用程序。我正在使用以下版本的软件:

Python:2.7.5 socketio:0.3.5 socket.io.js:1.3.5

在我的主要代码中,我正在以这种方式运行应用程序:

SocketIOServer(("0.0.0.0", port), application, resource="socket.io", transports=["websocket"]).serve_forever()

这就是我的服务器处理程序的一部分:

class PingPongNamespace(BaseNamespace):
    '''This class defines the websocket handler for
    the press controller status system
    '''
    def __init__(self):
        v = 1

    def on_ping(self, msg):
        self.emit("pong")


from socketio import socketio_manage

@app.route(mount("/socket.io/1/<path:path>"))
def pingpong(path):
    socketio_manage(request.environ, {"/pingpong": PingPongNamespace}, request)

我的JavaScript看起来像这样:

$(document).ready(function() {
    "use strict"; 

    localStorage.debug = "*";    

    var socket = io.connect("http://" + window.location.host + "/pingpong");

    socket.on("connect", function(data) {
        console.log("join");
    });

    socket.on("pong", function(data) {
        console.log("pong: " + data);
    });

    setInterval(function() {
        console.log("ping");
        socket.emit("ping");
    }, 10 * 1000);
});

服务器运行,但我从来没有从客户端到服务器的连接,我一直看到

KeyError:“socketio”

因为“socketio”未在服务器环境变量中定义。我在谷歌上四处寻找,但到目前为止,我所尝试的一切都没有帮助。有没有人有任何建议,指针或参考资料可以帮助我?

谢谢, 道格

0 个答案:

没有答案