sdk-javascript/examples/websocket/README.md

46 lines
1.7 KiB
Markdown

# WebSocket Example
This example shows how simple it is to use CloudEvents over a websocket
connection. The code here shows backend communication from two server
side processes, and also between a browser and a server process.
## Running the Example
This simple project consists of a server and a client. The server receives
`CloudEvents` from the client over a local websocket connection.
To get started, first install dependencies.
```sh
npm install
```
### Server
The server opens a websocket and waits for incoming connections. It expects that any
messages it receives will be a CloudEvent. When received, it reads the data field,
expecting a zip code. It then fetches the current weather for that zip code and
responds with a CloudEvent containing the body of the Weather API response as the
event data.
You will need to change one line in the `server.js` file and provide your Open
Weather API key. You can also create a environment variable `OPEN_WEATHER_API_KEY` and store your key there.
To start the server, run `node server.js`.
### Client
Upon start, the client prompts a user for a zip code, then sends a CloudEvent over
a websocket to the server with the provided zip code as the event data. The server
fetches the current weather for that zip code and returns it as a CloudEvent. The
client extracts the data and prints the current weather to the console.
To start the client, run `node client.js`
### Browser
Open the [`index.html`]('./index.html') file in your browser and provide a zip
code in the provided form field. The browser will send the zip code in the data
field of a CloudEvent over a websocket. When it receives a response from the server
it prints the weather, or an error message, to the screen.
To terminate the client or server, type CTL-C.