首个可运行的版本
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
"""WebSocket 事件类型定义"""
|
||||
|
||||
from enum import Enum
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class EventType(str, Enum):
|
||||
# 客户端 -> 服务端
|
||||
CHAT_SEND = "chat.send"
|
||||
CHAT_TYPING = "chat.typing"
|
||||
CHAT_READ = "chat.read"
|
||||
PRESENCE_UPDATE = "presence.update"
|
||||
|
||||
# 服务端 -> 客户端
|
||||
CHAT_MESSAGE = "chat.message"
|
||||
CHAT_TYPING_INDICATOR = "chat.typing"
|
||||
CHAT_READ_RECEIPT = "chat.read"
|
||||
CHAT_MESSAGE_DELETED = "chat.message_deleted"
|
||||
CONVERSATION_UPDATED = "conversation.updated"
|
||||
CONVERSATION_MEMBER_ADDED = "conversation.member_added"
|
||||
CONVERSATION_MEMBER_REMOVED = "conversation.member_removed"
|
||||
FRIEND_REQUEST = "friend.request"
|
||||
FRIEND_ACCEPTED = "friend.accepted"
|
||||
PRESENCE_ONLINE = "presence.online"
|
||||
PRESENCE_OFFLINE = "presence.offline"
|
||||
ERROR = "error"
|
||||
|
||||
|
||||
class WSEvent(BaseModel):
|
||||
"""WebSocket 事件信封"""
|
||||
type: str
|
||||
data: dict
|
||||
timestamp: str | None = None
|
||||
|
||||
|
||||
class ChatSendData(BaseModel):
|
||||
"""发送消息数据"""
|
||||
conversation_id: str
|
||||
content: str
|
||||
type: str = "text"
|
||||
reply_to_id: str | None = None
|
||||
|
||||
|
||||
class ChatTypingData(BaseModel):
|
||||
"""输入中数据"""
|
||||
conversation_id: str
|
||||
|
||||
|
||||
class ChatReadData(BaseModel):
|
||||
"""已读数据"""
|
||||
conversation_id: str
|
||||
message_id: str
|
||||
|
||||
|
||||
class PresenceUpdateData(BaseModel):
|
||||
"""在线状态更新"""
|
||||
status: str # online / offline / away
|
||||
Reference in New Issue
Block a user