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

2.7 KiB
Raw Blame History

Socket API

Socket服务器运行在52006端口。客户端连接后可以发送JSON格式的消息。每个消息必须包含type字段,表示操作类型。

消息格式

所有消息均为JSON格式编码为UTF-8字符串发送。

1. 注册

  • 请求:
{
"type": "register",
"username": string,
"password": string,
}
  • 响应:
  • 成功:
{
"type": "register",
"status": "succeed",
"message": "注册成功"
}
  • 用户名已存在:
{
"type": "register",
"status": "error_0",
"message": "用户名已存在"
}
  • 用户名格式错误:
{
"type": "register",
"status": "error_2",
"message": "用户名长度必须在2到20个字符之间"
}
  • 密码格式错误:
{
"type": "register",
"status": "error_1",
"message": "密码长度必须在4到20个字符之间"
}
  • 其他错误
{
"type" = "register",
"status" = "error_-1",
"message" = "用户名或密码不能为空"
}

2. 登录

  • 请求:
{
"type": "login",
"username": string,
"password": string
}
  • 响应:
  • 成功:
{
"type" = "login",
"status" = "succeed",
"message" = "登录成功",
"username" = string,
"userid" = string
}
  • 账号或密码错误:
{
"type" = "login",
"status" = "error_0",
"message" = "用户名或密码错误"
}
  • 密码格式错误:
{
"type" = "login",
"status" = "error_1",
"message" = "密码长度不能超过20个字符"
}
  • 用户名格式错误:
{
"type" = "login",
"status" = "error_2",
"message" = "用户名长度必须在2到20个字符之间"
}
  • 其他错误:
{
"type" = "login",
"status" = "error_-1",
"message" = "用户名或密码不能为空"
}

3. 发送聊天消息

  • 请求:
{
"type" = "chat";
"message" = string;
"msgtype" = MessageType; //MessageType定义在下面的条目上
"userid" = string;
"token" = null;  // 可空因为目前没搞这个。所以可以不用发送token。
}
  • 响应:
  • 成功:
{
"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)的文章。

public enum MessageType
{
    Text,
    Image,//图片
    File,//文件
    System//系统信息
}

所以在MessageType.Text的值为0。以此类推,MessageTypeImage值为1.

表现在json文本中为

{
"msgtype" = 0
}

键为"msgtype"的值为MessageType.Text