actix_web_socket_io/
socketio.rs1use actix::Message;
2use num_enum::{IntoPrimitive, TryFromPrimitive};
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6#[derive(IntoPrimitive, Clone, Eq, PartialEq, TryFromPrimitive)]
8#[repr(u8)]
9pub enum SocketIOPacketType {
10 Connect = 0,
12 Disconnect = 1,
14 Event = 2,
16 Ack = 3,
18 ConnectError = 4,
20 BinaryEvent = 5,
22 BinaryAck = 6,
24}
25
26#[derive(IntoPrimitive, Clone, Eq, PartialEq, TryFromPrimitive)]
28#[repr(u8)]
29pub enum EngineIOPacketType {
30 Open = 0,
32 Close = 1,
34 Ping = 2,
36 Pong = 3,
38 Message = 4,
40 Upgrade = 5,
42 Noop = 6,
44}
45
46#[derive(Message, Serialize)]
48#[rtype(result = "Result<(), &'static str>")]
49#[serde(rename_all = "camelCase")]
50pub struct OpenPacket {
51 pub sid: String,
53 pub upgrades: Vec<String>,
55 pub ping_interval: u64,
57 pub ping_timeout: u64,
59 pub max_payload: usize,
61}
62
63#[derive(Deserialize, Debug)]
64pub struct EventData(pub String, pub Value);
65
66pub enum MessageType {
67 None,
68 Event(EventData),
70}