ChatX/API.md
2025-06-15 15:05:09 +08:00

159 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Socket API
Socket服务器运行在`52006`端口。客户端连接后可以发送JSON格式的消息。每个消息必须包含`type`字段,表示操作类型。
### 消息格式
所有消息均为JSON格式编码为UTF-8字符串发送。
### 1. 注册
- **请求**:
```json
{
"type": "register",
"username": string,
"password": string,
}
```
- **响应**:
- 成功:
```json
{
"type": "register",
"status": "succeed",
"message": "注册成功"
}
```
- 用户名已存在:
```json
{
"type": "register",
"status": "error_0",
"message": "用户名已存在"
}
```
- 用户名格式错误:
```json
{
"type": "register",
"status": "error_2",
"message": "用户名长度必须在2到20个字符之间"
}
```
- 密码格式错误:
```json
{
"type": "register",
"status": "error_1",
"message": "密码长度必须在4到20个字符之间"
}
```
- 其他错误
```json
{
"type" = "register",
"status" = "error_-1",
"message" = "用户名或密码不能为空"
}
```
### 2. 登录
- **请求**:
```json
{
"type": "login",
"username": string,
"password": string
}
```
- **响应**:
- 成功:
```json
{
"type" = "login",
"status" = "succeed",
"message" = "登录成功",
"username" = string,
"userid" = string
}
```
- 账号或密码错误:
```json
{
"type" = "login",
"status" = "error_0",
"message" = "用户名或密码错误"
}
```
- 密码格式错误:
```json
{
"type" = "login",
"status" = "error_1",
"message" = "密码长度不能超过20个字符"
}
```
- 用户名格式错误:
```json
{
"type" = "login",
"status" = "error_2",
"message" = "用户名长度必须在2到20个字符之间"
}
```
- 其他错误:
```json
{
"type" = "login",
"status" = "error_-1",
"message" = "用户名或密码不能为空"
}
```
### 3. 发送聊天消息
- **请求**:
```json
{
"type" = "chat";
"message" = string;
"msgtype" = MessageType; //MessageType定义在下面的条目上
"userid" = string;
"token" = null; // 可空因为目前没搞这个。所以可以不用发送token。
}
```
- **响应**:
- 成功:
```json
{
"type" = "chat";
"userid" = "Unid";
"user" = "Unnamed";
"status" = string;
"message" = string;
"avatar" = null;
"msgtype" = MessageType; //MessageType定义在下面的条目上
"timestamp" = DateTime(例如:2025-06-15T12:41:26.6322042+08:00);
}
```
### MessageType格式
MessageType在服务器的定义如下可以先查看关于[C# 枚举(Enum)](https://www.runoob.com/csharp/csharp-enum.html)的文章。
```C#
public enum MessageType
{
Text,
Image,//图片
File,//文件
System//系统信息
}
```
所以在`MessageType.Text`的值为`0`。以此类推,`MessageTypeImage`值为`1`.
表现在json文本中为
```json
{
"msgtype" = 0
}
```
键为`"msgtype"`的值为`MessageType.Text`。