Client side closing websocket?

python-test-programs.zip

I am trying just to do a "proof of concept". My goal is to create a web GUI with buttons that when pressed will trigger the send of a command to a piece of equipment. So I thought about creating this GUI using HTML and javaScript and send the command using JSON through a websocket to a websocket server in Phyton that would receive the message, communicate with the equipment and return the information to the web page through the websocket. So I created a simple page with two buttons, one asking for an ID and another one asking for a status byte. Both buttons call the same function passing the specific item as parameter. I harcoded the answer from the server (two different answers depending on the command received), to simplify things. So, when I press the get ID button, I receive the correct information from the server and the client closes the websocket... If now I want to press the second button, the server does not receive the "request". I have to refresh the client page in order to be able to press the second button and then I receive the correct information, but again the client closes the websocket... and I cannot press the first button again, as the websocket is closed. So my question is: why the websocket is closing? I am not experienced either with Python or with websockets. In my ignorance I thought that websockets should remain opened until I explicitly invoke the close() function, so I thought that I could implement as many buttons I wanted and the channel between client and server would remain always opened... Am I missing something? I am using Python 3.7. Everything is running under Windows10 and client html code is running in Chrome. Attached you have the two files I created. Very basic GUI and even simpler server side.I would appreciate any light you can throw in my direction on what I am missing.

Best Answer

  • Gurpreet
    Answer ✓

    Hi @rmdemattos. We can only help with our Elektron Websockets API. You are better off asking general programming questions at python/javascript forums. For an example of how to use Elektron Websockets API from browser, please download and try the interactive guide package, as described in the quick start guide.