スマートフォン・タブレットからインターネットサーバーオペレーション 2016
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()