You should add to your code:
class ChatSession(async_chat):
def __init__(self,server,sock):
async_chat.__init__(self, sock)
self.server = server
self.set_terminator("\r\n")
self.data = []
self.sock = sock # <--- add this, so you remember the socket object
And then use what @staticd suggested:
def broadcast(self, line):
for sessions in self.sessions:
sessions.push(sessions.sock.getpeername() + ': ' + line + '\r\n')