I've got a simple little chat server set up that people can telnet into. The code is as follows: ---------- from twisted.internet import reactor from twisted.internet.protocol import ServerFactory from twisted.protocols.basic import LineOnlyReceiver import threading class ChatProtocol(LineOnlyReceiver): name = "" def getName(self): if self.name!="": return self.name return self.transport.getPeer().host def connectionMade(self): print "New connection from "+self.getName() self.sendLine("Welcome to the chat.\r\n/quit to quit.") self.factory.sendMessageToAllClients(self.getName()+" joined the chat.") self.factory.clientProtocols.append(self) def connectionLost(self, reason): print "Lost connection from "+self.getName() self.factory.clientProtocols.remove(self) self.factory.sendMessageToAllClients(self.getName()+" disconnected.") def lineReceived(self, line): if line=="/quit": self.transport.loseConnection() else: self.factory.sendMessageToAllClients(self.getName()+": "+line) def sendLine(self, line): self.transport.write(line+"\r\n") class ChatProtocolFactory(ServerFactory): protocol = ChatProtocol def __init__(self): self.clientProtocols = [] def sendMessageToAllClients(self, mesg): for client in self.clientProtocols: client.sendLine(mesg) def Test(): global test factory.sendMessageToAllClients('Hey.') test = threading.Timer(1.0, Test) test.start() test = threading.Timer(1.0, Test) test.start() print "Starting Server" factory = ChatProtocolFactory() reactor.listenTCP(3009, factory) reactor.run() ---------- The problem is that last def, "def Test()". It should send the line "Hey." to all connected users every second. It does that - however, the message only sends through if the client is typing or has entered a line. So, if a client is idle for 30 seconds, then starts typing, he will receive "Hey." 30 times in a row - one for each second he was idle. Is there any way to get this to send the message and have it show up for a client even when they're idle?