Skip to content

Instantly share code, notes, and snippets.

@borismus
Created September 17, 2011 22:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save borismus/1224416 to your computer and use it in GitHub Desktop.
Save borismus/1224416 to your computer and use it in GitHub Desktop.
Autobahn KeySocket
from twisted.internet import reactor
from autobahn.websocket import WebSocketServerFactory, WebSocketServerProtocol
from threading import Thread
class KeySocketProtocol(WebSocketServerProtocol):
def __init__(self, factory):
self.factory = factory
def onOpen(self):
self.factory.clients.append(self)
def onClose(self):
self.factory.clients.remove(self)
class KeySocketFactory(WebSocketServerFactory):
debug = False
def __init__(self):
self.clients = []
def buildProtocol(self, addr):
return KeySocketProtocol(self)
class KeySocketServer(Thread):
def __init__(self):
self.factory = KeySocketFactory()
self.factory.protocol = KeySocketProtocol
reactor.listenTCP(1337, self.factory)
Thread.__init__(self)
def run(self):
reactor.run(installSignalHandlers=0)
def sendKey(self, key):
for client in self.factory.clients:
client.sendMessage(key)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment