使用tornado和websocket实现简单的聊天室模拟场景
server端代码
from tornado import web,ioloop,httpserver,options
import datetime
from tornado.web import RequestHandler
from tornado.websocket import WebSocketHandler
class Index(RequestHandler):
def get(self):
self.render("templates/chat.html")
class Chat(WebSocketHandler):
users = set() # 用来存放用户的容器,必须类静态属性
def open(self):
self.users.add(self) # 建立连接后保存客户端的socket连接对象到users容器中
key = list(self.users).index(self)
for user in self.users: # 向已在线用户发送消息
user.write_message("[%s]-%02d-[%s]-登录" % (self.request.remote_ip, key, datetime.datetime.now