TornadoでWebsocketサーバを動かしてみたが書き換えたHTMLを受信する方法が分からない。
~手順~
1. TorrnadoでHTTPサーバの起動
2. HTMLファイルのJSがWebsocketサーバと通信
3.ブラウザでHTMLファイルを表示
4.WebsocketクライアントがWebsocketサーバにメッセージを送信するとHTMLが書き換わる
5.書き換えたHTMLを受信する
上記手順の5番目で躓いています。
wgetを使いページファイルをダウンロードすると書き換えられる前のデフォルトのHTMLファイルしか受信できません。
書き換えたHTMLを受信する方法を教えてください。
以下にコードを載せておきます。
サーバ
import tornado.ioloop import tornado.web import tornado.websocket cl = [] class WebSocketHandler(tornado.websocket.WebSocketHandler): def open(self): if self not in cl: cl.append(self) def on_message(self, message): for client in cl: client.write_message(message) def on_close(self): if self in cl: cl.remove(self) class MainHandler(tornado.web.RequestHandler): def get(self): self.render('test_ws.html') application = tornado.web.Application([ (r"/", MainHandler), (r"/websocket", WebSocketHandler), ]) if __name__ == "__main__": application.listen(8080) tornado.ioloop.IOLoop.current().start()
HTML/JSファイル
<h1>WebSockets Test</h1> <script> var ws; ws = new WebSocket("ws://54.65.113.57:8080/websocket"); ws.onmessage = function(ev) { document.getElementById('variable').innerHTML = ev.data; } </script> variable : <span id="variable">default</span>
クライアント(送信側)
import sys from websocket import create_connection ws = create_connection("ws://localhost:8080/websocket") if len(sys.argv) > 1: message = sys.argv[1] else: message = 'hello world!' print ws.send(message) print ws.recv() ws.close()
追記
書き換えたHTML/JSファイルを保存する方法があれば知りたいです。
上書き保存したHTMLならうまく受信できるのではないかと思いまして、、、
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/04 02:25
2020/08/04 02:46
2020/08/04 02:48