跳转到主要内容

概念解释

什么是设备?

设备(Device)是用户接入 WuKongIM 系统的终端载体,代表用户用来收发消息的具体设备。每个设备都有唯一的标识符和类型,支持用户在多个设备上同时使用即时通讯服务。

为什么设备很重要?

  • 多端同步:用户可以在手机、电脑、平板等多个设备上同时登录,消息实时同步
  • 设备管理:可以查看和管理用户的所有登录设备,支持远程踢出设备
  • 推送策略:根据设备类型采用不同的消息推送策略

与其他概念的关系

  • 用户(User):一个用户可以拥有多个设备,每个设备都关联到用户 ID
  • 消息(Message):消息会同步到用户的所有在线设备
  • 连接(Connection):每个设备都有独立的网络连接

核心结构

设备包含以下核心属性:
属性类型说明
cidinteger连接唯一标识符
uidstring设备所属用户ID
device_idstring设备唯一标识符
device_flaginteger设备类型标识
uptimestring在线时长
idlestring空闲时间

设备示例

{
  "cid": 12345,
  "uid": "user123",
  "device_id": "device_456",
  "device_flag": 1,
  "uptime": "1h30m",
  "idle": "5m"
}

相关 API 端点

端点方法说明
/user/device_quitPOST强制设备下线
/connzGET查看连接信息

设备标识类型

标识值设备类型描述
0AppAndroid,iPhone、iPad 设备
1Web浏览器、Web 应用
2Desktop桌面应用程序

EasySDK 代码示例

设备初始化和配置

import { WKIM } from 'easyjssdk';

// 初始化时会自动设置设备类型为 Web (1)
const im = WKIM.init("ws://your-server.com:5200", {
  uid: "user123",
  token: "your_token",
  deviceId: "web_device_001"  // 可选:自定义设备 ID
});

// EasySDK 会自动处理设备类型,Web 平台默认为设备类型 1
console.log('当前平台: Web');
console.log('设备类型: 1 (Web)');

多设备同步

重要说明:EasySDK 会自动处理多设备间的消息同步。当用户在多个设备上登录时,消息会自动同步到所有在线设备。
// EasySDK 自动处理多设备同步
// 当收到消息时,所有在线设备都会收到相同的消息

im.on(WKIMEvent.Message, (message) => {
  console.log('收到消息(自动同步到所有设备):', message);
});

// 检查连接状态
console.log('当前设备连接状态:', im.isConnected());
一个用户可以同时在多个设备上在线,EasySDK 会自动处理多设备间的消息同步。每个设备都有独立的连接和设备标识。