• 简体中文
  • 快速开始

    前置条件

    • GraalVM JDK 21(不仅仅是 JRE)
    • Maven 3.8+
    • Git

    验证你的环境:

    java --version    # 应显示 GraalVM 21.x
    mvn --version     # 应显示 3.8+

    构建

    git clone https://gitcode.com/qiusls/firmiana.git
    cd firmiana
    mvn compile

    运行

    mvn exec:java

    服务器将在 http://localhost:8899 上启动。

    验证

    检查服务器是否运行:

    curl http://localhost:8899/_matrix/client/versions

    预期响应:

    {
      "versions": ["v1.1", "v1.2", "v1.3", "v1.4", "v1.5", "v1.6"],
      "unstable_features": {
        "org.matrix.msc2965": true
      }
    }

    注册用户

    curl -X POST http://localhost:8899/_matrix/client/v3/register \
      -H "Content-Type: application/json" \
      -d '{
        "username": "alice",
        "password": "secret123",
        "auth": {
          "type": "m.login.dummy"
        }
      }'

    保存响应中的 access_token——后续所有请求都需要它。

    发送消息

    # 创建房间
    curl -X POST http://localhost:8899/_matrix/client/v3/createRoom \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{"name": "测试房间"}'
    
    # 发送消息(将 ROOM_ID 替换为实际的房间 ID)
    curl -X PUT http://localhost:8899/_matrix/client/v3/rooms/{roomId}/send/m.room.message/msg1 \
      -H "Authorization: Bearer <access_token>" \
      -H "Content-Type: application/json" \
      -d '{"msgtype": "m.text", "body": "你好,Matrix!"}'

    连接 Element

    1. 打开 Element Web 或 Element Desktop
    2. 进入设置 > 高级 > 其他主服务器
    3. 输入 http://localhost:8899
    4. 使用上面的凭据注册或登录

    替代方案:Classpath 启动

    在 Windows 上,exec:java 插件可能无法工作。使用 classpath 方式:

    mvn dependency:build-classpath -q -DincludeScope=runtime -Dmdep.outputFile=target/cp.txt
    java -cp "target/classes;$(cat target/cp.txt)" com.firmiana.matrix.Application

    运行测试

    mvn test

    预期:244 个测试,0 失败。