我正在尝试整理一个使用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”未在服务器环境变量中定义。我在谷歌上四处寻找,但到目前为止,我所尝试的一切都没有帮助。有没有人有任何建议,指针或参考资料可以帮助我?
谢谢, 道格