Skip to content

快速开始

环境要求

  • Node.js >= 18
  • npm >= 9 或 pnpm >= 8
  • Git

安装

克隆仓库

bash
git clone https://github.com/gitcoffee-os/imsky.git
cd imsky

安装依赖

bash
npm install
# 或
pnpm install

开发

启动开发服务器

bash
npm run dev
# 或
pnpm dev

开发服务器启动后,访问 http://localhost:3000 即可预览。

构建生产版本

bash
npm run build
# 或
pnpm build

构建产物将输出到 dist 目录。

项目结构

imsky/
├── apps/                 # 应用目录
│   ├── mobile/          # 移动端应用
│   ├── desktop/         # 桌面端应用
│   └── web/             # Web 端应用
├── packages/            # 共享包
│   ├── ui/              # UI 组件库
│   ├── sdk/             # IM SDK
│   └── shared/          # 共享工具
├── server/              # 服务端
│   ├── gateway/         # 网关服务
│   ├── message/         # 消息服务
│   └── user/            # 用户服务
├── docs/                # 文档
└── scripts/             # 脚本

配置说明

基础配置

在项目根目录创建 .env 文件:

env
# 服务端地址
VITE_API_BASE_URL=http://localhost:8080

# WebSocket 地址
VITE_WS_URL=ws://localhost:8080/ws

# 应用名称
VITE_APP_NAME=ImSky

多端配置

移动端

env
# apps/mobile/.env
VITE_PLATFORM=mobile
VITE_ENABLE_PUSH=true
VITE_PUSH_APP_KEY=your_push_key

桌面端

env
# apps/desktop/.env
VITE_PLATFORM=desktop
VITE_ENABLE_SHORTCUT=true

Web 端

env
# apps/web/.env
VITE_PLATFORM=web
VITE_ENABLE_PWA=true

使用示例

初始化 SDK

typescript
import { ImSDK } from '@imsky/sdk'

const sdk = new ImSDK({
  apiBaseUrl: 'http://localhost:8080',
  wsUrl: 'ws://localhost:8080/ws',
  appKey: 'your_app_key'
})

// 连接服务器
await sdk.connect()

发送消息

typescript
// 发送文本消息
await sdk.sendTextMessage({
  to: 'user_id',
  content: '你好!'
})

// 发送图片消息
await sdk.sendImageMessage({
  to: 'user_id',
  file: imageFile
})

监听消息

typescript
sdk.onMessage((message) => {
  console.log('收到消息:', message)
})

sdk.onConnect(() => {
  console.log('连接成功')
})

sdk.onDisconnect(() => {
  console.log('连接断开')
})

常见问题

Q: 如何切换开发环境?

A: 使用 .env.development.env.production 等文件来配置不同环境。

Q: 如何添加新的消息类型?

A: 在 packages/sdk/src/types/message.ts 中定义消息类型,并在对应端实现渲染组件。

Q: 如何自定义主题?

A: 修改 packages/ui/src/theme 目录下的样式变量。

下一步