# What are WebSockets and how does Katacoda use them?
The WebSocket protocol is essential in making it possible for bi-directional communication to take place between the user and the Katacoda scenario environment. Katacoda currently uses the socket.io library to facilitate this method of communication to your scenario environments.
# What can cause WebSocket connection failure?
While there are many general causes for Internet connection failure and most modern browser support the WebSocket protocol, it is worth noting that WebSockets can be prone to failure in cases where a proxy server, a (strict) firewall, and/or certain anti-virus software may exist between the end-user's browser and the Katacoda WebSocket server.
An error stemming from WebSocket connectivity issues will typically exhibit in the Katacoda
terminal and begin begin with the phrase:
Sorry, Polling transport has been disabled. Websockets only. or
We are sorry but we encountered a problem with the connection.
A useful 3rd party tool in assessing issues in making a WebSocket connection is websocketstest.com. This site will attempt to make a connection to its own WebSocket server that should reply back with its current server time. If any step in this process fails to execute, there will be a "No ❌" mark next to the step. If you see any information besides "No" to the right of "HTTP Proxy", this is very useful information to give to your network administrator for further diagnosis. If this field does not populate with an HTTP Proxy name and your network administrator is not aware of any firewall in place, the next step would be to investigate resolving WebSocket compatibility issues with your anti-virus software.
If you have any other questions, then please email us at [email protected].