2018-05-22 23:15:08 +02:00
---
title: Websockets
---
2024-05-27 22:55:31 +02:00
import CodeBlock from "@site/src/components/code_block";
2022-07-16 11:59:20 +02:00
# Websockets
2022-04-07 16:44:10 +02:00
Actix Web supports WebSockets with the `actix-web-actors` crate. It is possible to convert a request's `Payload` to a stream of [_ws::Message_][message] with a [_web::Payload_][payload] and then use stream combinators to handle actual messages, but it is simpler to handle websocket communications with an http actor.
2018-05-22 23:15:08 +02:00
The following is an example of a simple websocket echo server:
2022-07-16 11:59:20 +02:00
< CodeBlock example = "websockets" file = "main.rs" section = "websockets" / >
2018-05-22 23:15:08 +02:00
2019-06-25 05:36:32 +02:00
> A simple websocket echo server example is available in the [examples directory][examples].
2018-05-22 23:15:08 +02:00
2022-02-26 05:41:49 +01:00
> An example chat server with the ability to chat over a websocket or TCP connection is available in [websocket-chat directory][chat]
2019-06-25 05:36:32 +02:00
2019-12-28 20:16:54 +01:00
[message]: https://docs.rs/actix-web-actors/2/actix_web_actors/ws/enum.Message.html
2022-03-06 00:55:35 +01:00
[payload]: https://docs.rs/actix-web/4/actix_web/web/struct.Payload.html
2022-02-28 16:03:01 +01:00
[examples]: https://github.com/actix/examples/tree/master/websockets
2021-02-26 19:48:27 +01:00
[chat]: https://github.com/actix/examples/tree/master/websockets/chat