1
0
mirror of https://github.com/actix/examples synced 2024-11-23 14:31:07 +01:00
examples/websockets/chat-tcp
2024-08-28 22:59:56 -05:00
..
src docs: improve docs about tokio::main 2024-07-21 10:04:59 +01:00
static update all websocket examples to v4 2022-02-18 01:44:53 +00:00
Cargo.toml remove unneeded dependencies 2023-07-18 17:42:33 +01:00
client.py update all websocket examples to v4 2022-02-18 01:44:53 +00:00
README.md Add instructions to cd to the websockets/chat-tcp directory before running that example. 2024-08-28 22:59:56 -05:00

Websocket chat example

This is extension of the actix chat example

Added features:

  • Browser WebSocket client
  • Chat server runs in separate thread
  • TCP listener runs in separate thread

Server

Chat server listens for incoming tcp connections. Server can access several types of message:

  • /list - list all available rooms
  • /join name - join room, if room does not exist, create new one
  • /name name - set session name
  • some message - just string, send message to all peers in same room
  • client has to send heartbeat Ping messages, if server does not receive a heartbeat message for 10 seconds connection gets dropped

To start server run

cd websockets/chat-tcp
cargo run --bin websocket-tcp-server`

If the current directory is not correct, the server will look for index.html in the wrong place.

Client

Client connects to server. Reads input from stdin and sends to server.

To run client use command: cargo run --bin websocket-tcp-client

WebSocket Browser Client

Open url: http://localhost:8080