WebSockets Support Q&A for System Administrators

This article is meant to assist your System or Network Administrator with enabling Websockets on your system and on your Internet Network. Your network or system administrator is a person or a provider who administers your local network, your ISP, or your computer settings.

Q: What does Grammarly need in order to function correctly?

A: Besides HTTPS requests, Grammarly products use WebSockets to communicate with the text checking service. The WebSockets use HTTP and HTTPS, with the corresponding ports of 80 and 443. You can read more about Websockets here: 

https://en.wikipedia.org/wiki/WebSocket

https://www.websocket.org/aboutwebsocket.html 

Q: We have ports 80 and 443 opened for any connections, but Grammarly encounters issues with WebSockets. What do we do?

A: In order to work with your firewall correctly, WebSockets not only need these ports to be "opened", but there should also be some support on the firewall/proxy level.

After establishing a connection, a browser issues an HTTP request with an Upgrade header, which is a hop-by-hop header, i.e. it is meaningful only for a single transport-level connection, and it is neither stored by caches nor forwarded by proxies by default. If a proxy/firewall is not aware of WebSockets and it doesn't forward it further (making some other effort alongside, e.g. keeping the connection active), then it is impossible to establish a connection. 

Please consult your proxy/firewall documentation about how to enable support for WebSockets.

Q: We have protocol/domain/URL based firewall rules, what should we allow for Grammarly to work properly?

A: Besides our HTTPS services (*.grammarly.com, *.grammarly.io) for WebSockets, we use the following endpoints:

wss://capi.grammarly.com/fpws 

wss://capi.grammarly.com/freews

wss://dox.grammarly.com/documents

wss://capi.grammarly.com/wstest

Was this article helpful?
Have more questions? Submit a request

Comments

answer-bot