zoukankan      html  css  js  c++  java
  • 开源服务器Tornado的初步了解

    文章结束给大家来个程序员笑话:[M]

        
            明天看了下Python的一个新web框架,由Facebook开源。不得不说,品牌效应啊,只要是Facebook开源的目项,没有不好用的。Tornado可以说是好用到了极致,从开打官方面页开始懂得,到搭建一个web服务器,只用了10分钟。

            另外,Tornado支撑websocket通信,和天几前看的通过Netty支撑Websocket比拟,Tornado的作操要显得单简得更多。

        下载地址:http://www.tornadoweb.org/en/stable/

        

        安装步调:

    tar xvzf tornado-3.0.1.tar.gz
    cd tornado-3.0.1
    python setup.py build
    sudo python setup.py install

        服务器代码如下:

    import tornado.ioloop
    import tornado.web
    import tornado.websocket
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Hello, world")
    
    class MainHandler2(tornado.web.RequestHandler):
        def get(self):
            self.write("This is a test")
    
    class EchoWebSocket(tornado.websocket.WebSocketHandler):
        def open(self):
            print "WebSocket opened"
    
        def on_message(self, message):
            self.write_message(u"You said: " + message)
    
        def on_close(self):
            print "WebSocket closed"
    
    application = tornado.web.Application([
        (r"/", MainHandler),
        (r"/test", MainHandler2),
        (r"/websocket", EchoWebSocket),
    ])
    
    if __name__ == "__main__":
        application.listen(8888)
        tornado.ioloop.IOLoop.instance().start()

        需只要在application中注册url对应的handler可即,对于websocket,只要让handler承继自tornado.websocket.WebSocketHandler。

        

        然后用以下代码测试:

        每日一道理
    微笑着,去唱生活的歌谣,不要埋怨生活给予了太多的磨难,不必抱怨生命中有太多的曲折。大海如果失去了巨浪的翻滚,就会失去雄浑;沙漠如果失去了飞沙的狂舞,就会失去壮观。人生如果仅去求得两点一线的一帆风顺,生命也就失去了存在的意义。
    <html><head><title>Web Socket Client</title></head>  
    <body>  
    <script type="text/javascript">  
    var socket;  
    if (!window.WebSocket) {  
        window.WebSocket = window.MozWebSocket;  
    }  
    // Javascript Websocket Client  
    if (window.WebSocket) {  
        socket = new WebSocket("ws://localhost:8888/websocket");  
        socket.onmessage = function(event) {  
            var ta = document.getElementById('responseText');  
            ta.value = ta.value + '\n' + event.data  
        };  
        socket.onopen = function(event) {  
            var ta = document.getElementById('responseText');  
            ta.value = "Web Socket opened!";  
        };  
        socket.onclose = function(event) {  
            var ta = document.getElementById('responseText');  
            ta.value = ta.value + "Web Socket closed";  
        };  
    } else {  
        alert("Your browser does not support Web Socket.");  
    }  
    // Send Websocket data  
    function send(message) {  
        if (!window.WebSocket) { return; }  
        if (socket.readyState == WebSocket.OPEN) {  
            socket.send(message);  
        } else {  
            alert("The socket is not open.");  
        }  
    }  
    </script>  
    <h3>Send :</h3>  
    <form onsubmit="return false;">  
    <input type="text" name="message" value="Hello World!"/><input type="button" value="Send Web Socket Data" onclick="send(this.form.message.value)" />  
    <h3>Receive :</h3>  
    <textarea id="responseText" style="500px;height:300px;"></textarea>  
    </form>  
    </body>  
    </html>

        效果如下:

        开源和服务器

        

        

    文章结束给大家分享下程序员的一些笑话语录: 开发时间
      项目经理: 如果我再给你一个人,那可以什么时候可以完工?程序员: 3个月吧!项目经理: 那给两个呢?程序员: 1个月吧!
    项目经理: 那100呢?程序员: 1年吧!
    项目经理: 那10000呢?程序员: 那我将永远无法完成任务.

  • 相关阅读:
    thinkphp redis实现文章点赞功能并同步入mysql
    phpstorm2020.1最新版永久破解
    mysql修改sql_mode为宽松模式
    用为知发布博客到博客园、使用Wiz编写和发布博客园(cnblogs)博客
    Vim命令大全
    Vim教程
    GDB教程详解
    TCMalloc 对MYSQL 性能 优化的分析
    TCMalloc 安装和使用
    使用Tcmalloc进行堆栈分析
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3065681.html
Copyright © 2011-2022 走看看