スマートフォン・タブレットからインターネットサーバーオペレーション 2016

APPW.jp 2016

Tornado で Secure Websocket を試します

Tornado の Websocket サーバのサンプルコードが、Google 検索しますと、たいへん多くみつかります。それらを参考にさせていただき、Secure Websocket 接続を試してみました。


import tornado.httpserver
import tornado.websocket
import tornado.ioloop
import tornado.web

class WSHandler(
    tornado.websocket.WebSocketHandler):

  def open(self):
    print 'WebSocket opened.\n'

  def on_message(self, message):
    print 'received message: %s\n' %message
    self.write_message(message + ' OK')

  def on_close(self):
    print 'WebSocket closed.\n'

application = tornado.web.Application(
    [(r'/ws', WSHandler)])

if __name__ == "__main__":
  http_server = tornado.httpserver.HTTPServer(
      application, ssl_options={
          "certfile": "server.cert",
          "keyfile":  "server.key"})
  http_server.listen(8080)
  tornado.ioloop.IOLoop.instance().start()

クライアントは、websocket-client モジュールで接続を試してみました。


import sys
import ssl
from websocket import create_connection

ws = create_connection(
    "wss://example.jp:8080/ws",
    sslopt={"cert_reqs": ssl.CERT_NONE,
            "check_hostname": False})
 
if len(sys.argv) > 1:
    message = sys.argv[1]
else:
    message = 'hello websocket!'
 
print ws.send(message)
print ws.recv()
 
ws.close()

Python Pillow でサムネイルを作成

python-wordpress-xmlrpc ライブラリで投稿