1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from twisted.internet import reactor, protocol
from twisted.web import server, resource
from txsockjs.multiplex import SockJSMultiplexResource
class AnnP(protocol.Protocol):
def connectionMade(self):
self.transport.write("Ann says hi!")
def dataReceived(self, data):
self.transport.write("Ann nods: " + data)
class BobP(protocol.Protocol):
def connectionMade(self):
self.transport.write("Bob doesn't agree.")
def dataReceived(self, data):
self.transport.write("Bob says no to: " + data)
class CarlP(protocol.Protocol):
def connectionMade(self):
self.transport.write("Carl says goodbye!")
self.transport.loseConnection()
class AnnF(protocol.Factory):
protocol = AnnP
class BobF(protocol.Factory):
protocol = BobP
class CarlF(protocol.Factory):
protocol = CarlP
multiplex = SockJSMultiplexResource()
multiplex.addFactory("ann", AnnF())
multiplex.addFactory("bob", BobF())
multiplex.addFactory("carl", CarlF())
root = resource.Resource()
root.putChild("multiplex", multiplex)
site = server.Site(root)
reactor.listenTCP(8081, site)
reactor.run()