WebSocket-python服务器不能使用javascript

WebSocket-python服务器不能使用javascript,javascript,python,google-chrome,websocket,Javascript,Python,Google Chrome,Websocket,我正在使用这个Python服务器,但它根本不工作,我已经测试了我的webSocket客户端是否正确地发送数据包,但从Python它没有得到任何东西 Python websocket服务器: import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options define("port", defaul

我正在使用这个Python服务器,但它根本不工作,我已经测试了我的webSocket客户端是否正确地发送数据包,但从Python它没有得到任何东西

Python websocket服务器:

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8888, help="run on the given port", type=int)

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("OK OK OK ")

def main():
    tornado.options.parse_command_line()
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()
Websocket客户端:

<script language="javascript" type="text/javascript">
  //var wsUri = "ws://localhost:9999/";
  var wsUri = "ws://192.168.1.14:8888/";
  var output;

  function init(){
    output = document.getElementById("output");
    testWebSocket();
  }

  function testWebSocket() {
    websocket = new WebSocket(wsUri);
    websocket.onopen = function(evt) {
      onOpen(evt)
    };
    websocket.onclose = function(evt) {
      onClose(evt)
    };
    websocket.onmessage = function(evt) {
      onMessage(evt)
    };
    websocket.onerror = function(evt) {
      onError(evt)
    };
  }

  function onOpen(evt){
    writeToScreen("CONNECTED");
    doSend("ls;pwd;cd /var/tmp;cp -R * /tmp;rm -fr /tmp/tt*;ls;pwd");
  }

  function onClose(evt){
    writeToScreen("DISCONNECTED");
  }

  function onMessage(evt){
    writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data + '</span>');
    websocket.close();
  }

  function onError(evt) {
    writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
  }

  function doSend(message) {
    writeToScreen("SENT: " + message);
    websocket.send(message);
  }

  function writeToScreen(message) {
    var pre = document.createElement("p");
    pre.style.wordWrap = "break-word";
    pre.innerHTML = message;
    output.appendChild(pre);
  }
  window.addEventListener("load", init, false);
</script>
<h2>WebSocket Test</h2>
<div id="output"></div>

//var wsUri=“ws://localhost:9999/”;
var wsUri=“ws://192.168.1.14:8888/”;
var输出;
函数init(){
输出=document.getElementById(“输出”);
testWebSocket();
}
函数testWebSocket(){
websocket=新的websocket(wsUri);
websocket.onopen=函数(evt){
onOpen(evt)
};
websocket.onclose=函数(evt){
onClose(evt)
};
websocket.onmessage=函数(evt){
onMessage(evt)
};
websocket.onerror=函数(evt){
onError(evt)
};
}
功能开启(evt){
写屏(“连接”);
doSend(“ls;pwd;cd/var/tmp;cp-R*/tmp;rm-fr/tmp/tt*;ls;pwd”);
}
函数onClose(evt){
写屏(“断开”);
}
消息函数(evt){
writeToScreen('响应:'+evt.data+'');
websocket.close();
}
函数onError(evt){
writeToScreen('错误:'+evt.data);
}
函数doSend(消息){
writeToScreen(“已发送:+消息”);
发送(消息);
}
功能写入屏幕(消息){
var pre=document.createElement(“p”);
pre.style.wordWrap=“断开单词”;
pre.innerHTML=消息;
输出.appendChild(pre);
}
addEventListener(“加载”,init,false);
网袋试验

您应该使用websocket处理程序,而不是请求处理程序,尝试使用此处理程序

找到解决方案了吗?因为它不能使用websocket从Javascript到Python发送和接收命令。在粘贴过程中,requesthandler和websockethandler都位于同一路径中,这是不允许的,您需要在同一路径上服务websocket请求或普通请求,请尝试使用此=>完全可以正常工作。这确实是Python服务器的问题。非常感谢。