WebSocket-python服务器不能使用javascript
我正在使用这个Python服务器,但它根本不工作,我已经测试了我的webSocket客户端是否正确地发送数据包,但从Python它没有得到任何东西 Python websocket服务器: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
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服务器的问题。非常感谢。