python websocket 聊天实例

Posted on Posted in python
Tips: 本文创建于2016年5月12日,已超过 2 年,内容或图片可能已经失效!

> 后端python

  1. #! /usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3. # vim:fenc=utf-8  
  4. #  
  5. # pip install bottle_websocket  
  6. # pip install bottle  
  7. from bottle import get, run, template  
  8. from bottle.ext.websocket import GeventWebSocketServer  
  9. from bottle.ext.websocket import websocket  
  10. import gevent  
  11. users = set()  
  12. @get('/')  
  13. def index():  
  14.     return template('index')  
  15. @get('/websocket', apply=[websocket])  
  16. def chat(ws):  
  17.     users.add(ws)  
  18.     while True:  
  19.         msg = ws.receive()  
  20.         if msg is not None:  
  21.             for u in users:  
  22.                 print type(u)  
  23.                 u.send(msg)  
  24.                 print u,msg  
  25.         elsebreak  
  26.     users.remove(ws)  
  27. run(host='192.168.36.67', port=10000, server=GeventWebSocketServer)  

> 前端代码

  1. <html>  
  2. <head>  
  3. <script type="text/javascript" src="http://cdn.staticfile.org/jquery/1.11.0/jquery.min.js"></script>  
  4. <script>  
  5.         $(document).ready(function() {  
  6.             if (!window.WebSocket) {  
  7.                 if (window.MozWebSocket) {  
  8.                     windowwindow.WebSocket = window.MozWebSocket;  
  9.                 } else {  
  10.                     $('#messages').append("<li>Your browser doesn't support WebSockets.</li>");  
  11.                 }  
  12.             }  
  13.             ws = new WebSocket('ws://192.168.36.67:10000/websocket');  
  14.             ws.onopen = function(evt) {  
  15.                 $('#messages').append('<li>Connected to chat.</li>');  
  16.             }  
  17.             ws.onmessage = function(evt) {  
  18.                 $('#messages').append('<li>' + evt.data + '</li>');  
  19.             }  
  20.             $('#send-message').submit(function() {  
  21.                 ws.send($('#name').val() + ": " + $('#message').val());  
  22.                 $('#message').val('').focus();  
  23.                 return false;  
  24.             });  
  25.         });  
  26.     </script>  
  27. </head>  
  28. <body>  
  29. <form id="send-message" class="form-inline">  
  30.         <input id="name" type="text" value="name">  
  31.         <input id="message" type="text" value="contain" />  
  32.        &nbsp; <button class="btn btn-success" type="submit">Send</button>  
  33.     </form>  
  34.     <div id="messages"></div>  
  35. </body>  
  36. </html>  
» 转载请注明来源:呢喃 » python websocket 聊天实例

Leave a Reply

Your email address will not be published. Required fields are marked *

sixteen − 9 =