Once you get a Web Socket connection with the web server, you can send data from browser to server by calling a send() method, and receive data from server to browser by an onmessage event handler.
Following is the API which creates a new WebSocket object.
var Socket = new WebSocket(url, [protocal] );
Here first argument, url, specifies the URL to which to connect. The second attribute, protocol is optional, and if present, specifies a sub-protocol that the server must support for the connection to be successful.
A simple example
To open a websocket connection, we need to create
new WebSocket using the special protocol
ws in the url:
var Socket = new WebSocket("ws://howto.lintel.in/");
There’s also encrypted
wss:// protocol. It’s like HTTPS for websockets.
wss:// protocol not only encrypted, but also more reliable.
ws:// data is not encrypted, visible for any intermediary. Old proxy servers do not know about WebSocket, they may see “strange” headers and abort the connection.
On the other hand,
wss:// is WebSocket over TLS, (same as HTTPS is HTTP over TLS), the transport security layer encrypts the data at sender and decrypts at the receiver, so it passes encrypted through proxies. They can’t see what’s inside and let it through.
Following are the attribute of WebSocket object. Assuming we created Socket object as mentioned above:-
|Sr.No.||Attribute & Description|
The readonly attribute readyState represents the state of the connection. It can have the following values:-
The readonly attribute bufferedAmount represents the number of bytes of UTF-8 text that have been queued using send() method.
Following are the events associated with WebSocket object. Assuming we created Socket object as mentioned above:-
|open||Socket.onopen||This event occurs when socket connection is established.|
|message||Socket.onmessage||This event occurs when client receives data from server.|
|error||Socket.onerror||This event occurs when there is any error in communication.|
|close||Socket.onclose||This event occurs when connection is closed.|
These are the methods associated with WebSocket object. Assuming we created Socket object as mentioned above:-
|Sr.No.||Method & Description|
The send(data) method transmits data using the connection.
The close() method would be used to terminate any existing connection.
WebSocket is a standard bidirectional TCP socket between the client and the server. The socket starts out as a HTTP connection and then “Upgrades” to a TCP socket after a HTTP handshake. After the handshake, either side can send data.
At the time of writing this tutorial, there are only few web browsers supporting WebSocket() interface. You can try following example with latest version of Chrome, Mozilla, Opera and Safari.