2018-05-22 23:15:08 +02:00
|
|
|
---
|
|
|
|
title: Websockets
|
2020-09-12 16:21:54 +01:00
|
|
|
menu: docs_protocols
|
2018-05-22 23:15:08 +02:00
|
|
|
weight: 240
|
|
|
|
---
|
|
|
|
|
2019-06-26 12:55:12 -04: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:
|
|
|
|
|
2019-06-17 18:07:57 -04:00
|
|
|
{{< include-example example="websockets" file="main.rs" section="websockets" >}}
|
2018-05-22 23:15:08 +02:00
|
|
|
|
2019-06-24 23:36:32 -04:00
|
|
|
> A simple websocket echo server example is available in the [examples directory][examples].
|
2018-05-22 23:15:08 +02:00
|
|
|
|
2020-09-12 16:21:54 +01:00
|
|
|
> An example chat server with the ability to chat over a websocket or TCP connection
|
2019-06-24 23:36:32 -04:00
|
|
|
> is available in [websocket-chat directory][chat]
|
|
|
|
|
2019-12-29 04:16:54 +09:00
|
|
|
[message]: https://docs.rs/actix-web-actors/2/actix_web_actors/ws/enum.Message.html
|
2020-09-12 16:21:54 +01:00
|
|
|
[payload]: https://docs.rs/actix-web/3/actix_web/web/struct.Payload.html
|
2021-02-26 15:48:27 -03:00
|
|
|
[examples]: https://github.com/actix/examples/tree/master/websockets/websocket
|
|
|
|
[chat]: https://github.com/actix/examples/tree/master/websockets/chat
|