diff options
| author | 2024-08-30 15:54:40 +0200 | |
|---|---|---|
| committer | 2024-08-30 15:54:40 +0200 | |
| commit | 0f7c975fe61dab4efb11b49ddc87331c30c26942 (patch) | |
| tree | 68f4b351b337b9a2269ddb2cb512016c93e7cbbc /ttun_server/types.py | |
| parent | 53a8f300859a50d9f99f1821c35bca999fced6d8 (diff) | |
| parent | a72a0485ef8761b95c73cc420723247fafbb6f1c (diff) | |
| download | server-2.1.0.tar.gz server-2.1.0.tar.bz2 server-2.1.0.zip | |
Added websocket support
Diffstat (limited to 'ttun_server/types.py')
| -rw-r--r-- | ttun_server/types.py | 51 |
1 files changed, 45 insertions, 6 deletions
diff --git a/ttun_server/types.py b/ttun_server/types.py index 8a4d929..8591e7d 100644 --- a/ttun_server/types.py +++ b/ttun_server/types.py | |||
| @@ -3,7 +3,7 @@ from enum import Enum | |||
| 3 | from typing import TypedDict, Optional | 3 | from typing import TypedDict, Optional |
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | class MessageType(Enum): | 6 | class HttpMessageType(Enum): |
| 7 | request = 'request' | 7 | request = 'request' |
| 8 | response = 'response' | 8 | response = 'response' |
| 9 | 9 | ||
| @@ -13,23 +13,62 @@ class Config(TypedDict): | |||
| 13 | client_version: str | 13 | client_version: str |
| 14 | 14 | ||
| 15 | 15 | ||
| 16 | class RequestData(TypedDict): | 16 | class HttpRequestData(TypedDict): |
| 17 | method: str | 17 | method: str |
| 18 | path: str | 18 | path: str |
| 19 | headers: list[tuple[str, str]] | 19 | headers: list[tuple[str, str]] |
| 20 | body: Optional[str] | 20 | body: Optional[str] |
| 21 | 21 | ||
| 22 | 22 | ||
| 23 | class ResponseData(TypedDict): | 23 | class HttpResponseData(TypedDict): |
| 24 | status: int | 24 | status: int |
| 25 | headers: list[tuple[str, str]] | 25 | headers: list[tuple[str, str]] |
| 26 | body: Optional[str] | 26 | body: Optional[str] |
| 27 | 27 | ||
| 28 | 28 | ||
| 29 | class Message(TypedDict): | 29 | class HttpMessage(TypedDict): |
| 30 | type: MessageType | 30 | type: HttpMessageType |
| 31 | identifier: str | 31 | identifier: str |
| 32 | payload: Config | RequestData | ResponseData | 32 | payload: Config | HttpRequestData | HttpResponseData |
| 33 | |||
| 34 | |||
| 35 | class WebsocketMessageType(Enum): | ||
| 36 | connect = 'connect' | ||
| 37 | disconnect = 'disconnect' | ||
| 38 | message = 'message' | ||
| 39 | ack = 'ack' | ||
| 40 | |||
| 41 | |||
| 42 | class WebsocketConnectData(TypedDict): | ||
| 43 | path: str | ||
| 44 | headers: list[tuple[str, str]] | ||
| 45 | |||
| 46 | |||
| 47 | class WebsocketDisconnectData(TypedDict): | ||
| 48 | close_code: int | ||
| 49 | |||
| 50 | |||
| 51 | class WebsocketMessageData(TypedDict): | ||
| 52 | body: Optional[str] | ||
| 53 | |||
| 54 | |||
| 55 | class WebsocketMessage(TypedDict): | ||
| 56 | type: WebsocketMessageType | ||
| 57 | identifier: str | ||
| 58 | payload: WebsocketConnectData | WebsocketDisconnectData | WebsocketMessageData | ||
| 59 | |||
| 60 | |||
| 61 | class MessageType(Enum): | ||
| 62 | request = 'request' | ||
| 63 | response = 'response' | ||
| 64 | |||
| 65 | ws_connect = 'connect' | ||
| 66 | ws_disconnect = 'disconnect' | ||
| 67 | ws_message = 'message' | ||
| 68 | ws_ack = 'ack' | ||
| 69 | |||
| 70 | |||
| 71 | Message = HttpMessage | WebsocketMessage | ||
| 33 | 72 | ||
| 34 | 73 | ||
| 35 | class MemoryConnection(TypedDict): | 74 | class MemoryConnection(TypedDict): |
