AutoBahnのテスト

http://autobahn.ws/python/websocket/programming.html
とりあえず動いた。ClientIDを指定して送信する方法を考える。
→AutobahnのWAMPでSession IDを使えばいい?
server.py

import sys
from twisted.python import log
from twisted.internet import reactor
from autobahn.twisted.websocket import WebSocketServerFactory
from autobahn.twisted.websocket import WebSocketServerProtocol
import json

class MyServerProtocol(WebSocketServerProtocol):

   def onMessage(self, payload, isBinary):
      ## echo back message verbatim
      self.sendMessage(payload, isBinary)
      #payload = json.dumps(obj, ensure_ascii = False).encode('utf8')
      #payload = s.encode('utf8')
      #self.sendMessage(payload, isBinary = False)

   def onConnect(self, request):
      print("Client connecting: {}".format(request.peer))

   def onOpen(self):
      print("WebSocket connection open.")


   def onClose(self, wasClean, code, reason):
      print("WebSocket connection closed: {}".format(reason))


log.startLogging(sys.stdout)
factory = WebSocketServerFactory()
factory.protocol = MyServerProtocol

reactor.listenTCP(8080, factory)
reactor.run()

client.py

import sys
from twisted.python import log
from twisted.internet import reactor
from autobahn.twisted.websocket import WebSocketClientFactory
from autobahn.twisted.websocket import WebSocketClientProtocol

class MyClientProtocol(WebSocketClientProtocol):

   def onOpen(self):
      self.sendMessage(u"Hello, world!".encode('utf8'))

   def onMessage(self, payload, isBinary):
      if isBinary:
         print("Binary message received: {0} bytes".format(len(payload)))
      else:
         print("Text message received: {0}".format(payload.decode('utf8')))

log.startLogging(sys.stdout)
factory = WebSocketClientFactory()
factory.protocol = MyClientProtocol
reactor.connectTCP("127.0.0.1", 8080, factory)
reactor.run()