Reputation: 51
I am fairly new to the world of programming and i am trying to create this raspberry-pi server to control some electronics over the internet. But it seems that the code i copied and wrote does not allow for the java-script to be executed by the webpage. How do i change my code so that it also renders the java-script?
Sorry for the bad English.
Python code:
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.websocket
class WebServer(tornado.web.RequestHandler):
def get(self):
self.render("index.html")
class WebSocket(tornado.websocket.WebSocketHandler):
def check_origin(self, origin):
return True
def open(self):
print("Connection opened")
self.write_message("Connection opened")
def on_close(self):
print("Connection closed")
def on_message(self, message):
print("message received: " + str(message))
def main():
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/", WebServer)])
app2 = tornado.web.Application(handlers=[(r"/", WebSocket)])
server = tornado.httpserver.HTTPServer(app)
server2 = tornado.httpserver.HTTPServer(app2)
server.listen(80)
server2.listen(8000)
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main()
Html code:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>liquoratus.pi</title>
<link href="./favicon.ico" rel="icon" type="image/x-icon" />
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h1>It works</h1>
</body>
</html>
Javascript:
var ws = new WebSocket("ws://192.168.2.6:8000/")
ws.onopen = function(){
ws.send("Hello World");
};
ws.onmessage = function(event){
console.log(event.data)
}
ws.onclose = function(){
alert("Lost connection to the server!");
}
Upvotes: 0
Views: 816
Reputation: 1
Javascript is not rendered. If you need html to be dynamically altered to display messeges pushed from websocket, you may need to do that by javascript.
Upvotes: 0