|
@@ -9,39 +9,41 @@ from demeter import *
|
|
|
from tornado.tcpserver import TCPServer
|
|
|
from tornado.ioloop import IOLoop
|
|
|
|
|
|
-class Connection(object):
|
|
|
- clients = set()
|
|
|
- def __init__(self, stream, address):
|
|
|
- Connection.clients.add(self)
|
|
|
- self._stream = stream
|
|
|
- self._address = address
|
|
|
- self._stream.set_close_callback(self.on_close)
|
|
|
- self.read_message()
|
|
|
- print "A new user has entered the chat room.", address
|
|
|
+class Connection(object):
|
|
|
+ clients = set()
|
|
|
+ def __init__(self, stream, address):
|
|
|
+ Connection.clients.add(self)
|
|
|
+ self._stream = stream
|
|
|
+ self._address = address
|
|
|
+ self._stream.set_close_callback(self.on_close)
|
|
|
+ self.read_message()
|
|
|
|
|
|
def read_message(self):
|
|
|
- self._stream.read_until('\n', self.broadcast_messages)
|
|
|
+ self._stream.read_until('\n', self.broadcast_messages)
|
|
|
|
|
|
def broadcast_messages(self, data):
|
|
|
pub = Pub()
|
|
|
- key = ''
|
|
|
- value = ''
|
|
|
+ temp = data.split(':')
|
|
|
+ key = temp[0]
|
|
|
+ value = temp[1]
|
|
|
pub.push(key, value)
|
|
|
|
|
|
- print "User said:", data[:-1], self._address
|
|
|
- for conn in Connection.clients:
|
|
|
+ #print "User said:", data[:-1], self._address
|
|
|
+ """
|
|
|
+ for conn in Connection.clients:
|
|
|
conn.send_message(data)
|
|
|
+ """
|
|
|
self.read_message()
|
|
|
|
|
|
def send_message(self, data):
|
|
|
self._stream.write(data)
|
|
|
|
|
|
- def on_close(self):
|
|
|
- print "A user has left the chat room.", self._address
|
|
|
+ def on_close(self):
|
|
|
+ #print "A user has left the chat room.", self._address
|
|
|
Connection.clients.remove(self)
|
|
|
|
|
|
class Server(TCPServer):
|
|
|
- def handle_stream(self, stream, address):
|
|
|
- #print "New connection :", address, stream
|
|
|
- Connection(stream, address)
|
|
|
- #print "connection num is:", len(Connection.clients)
|
|
|
+ def handle_stream(self, stream, address):
|
|
|
+ #print "New connection :", address, stream
|
|
|
+ Connection(stream, address)
|
|
|
+ #print "connection num is:", len(Connection.clients)
|