I have a client interface to a hardware device that communicates over a standard TCP socket. Is it possible to connect to this using WebSocket in a browser like Chrome? Here's the code I am using to connect:
var ws = new WebSocket("ws://127.0.0.1:13854");
ws.onopen = function() ...
The client just fails so far on the first line. Is the problem that WebSockets use their own protocol which a standard local socket would be unfamiliar with? I have tried specifying other protocols ('http://...' and 'tcp://...') but this has not worked.
As thejh already explained, WebSockets don't transmit data as you provide it, but add framing and masking to the data stream. Thus it is not possible to use websockets to communicate with applications which don't implement the WebSocket protocol.
But there is a workaround: A Websockify server can be used as a proxy to bridge between a websocket client and a non-websocket server. The client doesn't communicate with the application directly, but with a websockify server instead. Websockify unpacks the Websocket data stream and relays it to the server. The response from the server is then packed into WebSocket frames and sent to the client.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With