Python tornado websocker客户端编程

Python tornado websocker客户端编程

原创

wx5e6caa8b9792d博主文章分类:Python高级编程 ©著作权

文章标签 html tornado sed 文章分类 Python 后端开发

©著作权归作者所有:来自51CTO博客作者wx5e6caa8b9792d的原创作品,请联系作者获取转载授权,否则将追究法律责任


<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<a href="javascript:WebSocketTest()">Run WebSockera>
<div id="messages">


div>



body>
<script>
var messageContainer=document.getElementById("messages");
function WebSocketTest() {
if ("WebSocket" in window){
messageContainer.innerHTML='Web Socket is supported by your browser';
var ws=new WebSocket("ws://localhost:8888/websocket?id=1");
ws.onopen=function () {
ws.send("Message To Send");
};
ws.onmessage=function (p1) {
var receivemasg=p1.data;
messageContainer.innerHTML=messageContainer.innerHTML+"
Message is received :"
+receivemasg;



};

ws.onclose=function (p1) {

messageContainer.innerHTML=messageContainer.innerHTML+"
Connection is closed .. :"
+receivemasg;


}




}else{
messageContainer.innerHTML="您的电脑不支持webSocker";
}
}


script>

html>

#coding:utf-8import  tornadofrom tornado.ioloop import IOLoopimport tornado.websocketimport tornado.webfrom tornado.options import define,options,parse_command_linedefine("port",default=8888,help="run on the given port",type=int)clients=dict()class IndexHandler(tornado.web.RequestHandler):    @tornado.web.asynchronous    def get(self, *args, **kwargs):        self.render("../templates/index.html")class MyWebSocketHandler(tornado.websocket.WebSocketHandler):    def open(self, *args, **kwargs):        self.id=self.get_argument("id")        self.stream.set_nodelay(True)        clients[self.id]={"id":self.id,"object":self}    def on_message(self, message):        print("Client %s received a message %s  "%(self.id,message))    def on_close(self):        if self.id in clients:            del clients[self.id]            print("Client %s is closed "%self.id)    def check_origin(self, origin):        return Trueapp=tornado.web.Application(handlers=[    (r"/",IndexHandler),    (r"/websocket",MyWebSocketHandler)],static_path="templates")import threadingimport timedef sendTime():    import datetime    while True:        for key in clients.keys():            msg=str(datetime.datetime.now())            clients[key]["object"].write_message(msg)            print("write to client %s :%s"%(key,msg))        time.sleep(1)if __name__ == '__main__':    threading.Thread(target=sendTime).start()    parse_command_line()    app.listen(options.port)    IOLoop.instance().start()
  • 收藏
  • 评论
  • *举报

上一篇:Python2输出字段不乱码的解决方案包括list,就是这么厉害

下一篇:谷歌浏览器处理访问https网站,处理ssl提示对话框

Original: https://blog.51cto.com/u_14754853/5533288
Author: wx5e6caa8b9792d
Title: Python tornado websocker客户端编程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504635/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球