Skip to content

Update docs with WebSocket proxy NOTE #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: docs-proxy-ws
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions packages/react-scripts/template/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -987,20 +987,22 @@ You may also narrow down matches using `*` and/or `**`, to match the path exactl

When setting up a WebSocket proxy, there are a some extra considerations to be aware of.
If you're using a WebSocket engine like [Socket.io](https://socket.io/), you must have a Socket.io server running that you can use as the proxy target.
Socket.io will not work with a standard WebSocket server. Specifically, don't expect Socket.io to work with [the websocket.org echo test](http://websocket.org/echo.html)
[Socket.io-client](https://github.com/socketio/socket.io-client) will not work with a standard WebSocket server. Specifically, don't expect Socket.io to work with [the websocket.org echo test](http://websocket.org/echo.html)
There's some good documentation available for [setting up a Socket.io server](https://socket.io/docs/)

Standard WebSockets **will** work with a standard WebSocket server as well as the websocket.org echo test.
You can use libraries like [ws](https://github.com/websockets/ws) for the server, with [native WebSockets in the browser](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket)

NOTICE: if you would like access to **WebSocket that already hosted at domain URL** (API from another app) `ws://<domain_url>` - then **you don't need to enable proxy**, also you need to use [only the native browser WebSocket API](https://developer.mozilla.org/en/docs/Web/API/WebSocket) for communication with the server.

Either way, you can proxy WebSocket requests manually in `package.json`
```js
{
// ...
"proxy": {
"/socket": {
// Your compatible WebSocket server
"target": "ws://<socket_url>",
"target": "ws://<socket_localhost:port>",
// Tell http-proxy-middleware that this is a WebSocket proxy.
// Also Allows you to proxy WebSocket requests without an additional http request
// https://github.com/chimurai/http-proxy-middleware#external-websocket-upgrade
Expand All @@ -1012,9 +1014,6 @@ Either way, you can proxy WebSocket requests manually in `package.json`
}
```




## Using HTTPS in Development

>Note: this feature is available with `[email protected]` and higher.
Expand Down