UNPKG

wildfire-im-sdk

Version:
173 lines (135 loc) 3.74 kB
# 野火IM SDK 野火IM的Vue3版本SDK,用于在Vue3项目中快速集成野火IM的即时通讯功能。 ## 安装 ```bash npm install wildfire-im-sdk --save # 或者 yarn add wildfire-im-sdk ``` ## 使用 ### 基本用法 ```typescript import { createApp } from 'vue'; import App from './App.vue'; import { init, connect } from 'wildfire-im-sdk'; // 初始化SDK init(); // 连接IM服务器 connect('your-user-id', 'your-token'); // 创建Vue应用 createApp(App).mount('#app'); ``` ### 自定义配置 ```typescript import { createApp } from 'vue'; import App from './App.vue'; import { init, connect, Config } from 'wildfire-im-sdk'; // 自定义配置 const customConfig = { APP_SERVER: 'https://your-im-server.com', DEFAULT_USER_ID: 'custom-user', DEFAULT_TOKEN: 'custom-token', AUTO_CONNECT: true }; // 初始化SDK,传入自定义配置 init(customConfig); // 创建Vue应用 createApp(App).mount('#app'); ``` ### 在组件中使用 ```vue <template> <div> <div>连接状态: {{ connectionStatusText }}</div> <button @click="sendMessage">发送消息</button> </div> </template> <script setup> import { ref, computed, onMounted, onUnmounted } from 'vue'; import { wfc, EventType, ConnectionStatus, ConversationType, TextMessageContent } from 'wildfire-im-sdk'; // 状态变量 const connectionStatus = ref(wfc.getConnectionStatus()); // 计算属性 const connectionStatusText = computed(() => { switch (connectionStatus.value) { case ConnectionStatus.ConnectionStatusUnconnected: return '未连接'; case ConnectionStatus.ConnectionStatusConnecting: return '连接中...'; case ConnectionStatus.ConnectionStatusConnected: return '已连接'; case ConnectionStatus.ConnectionStatusAuthenticated: return '已认证'; default: return '未知状态'; } }); // 发送消息 const sendMessage = () => { // 创建会话 const conversation = { type: ConversationType.Single, target: 'user123', line: 0 }; // 创建消息内容 const content = new TextMessageContent('Hello, this is a test message!'); // 发送消息 wfc.sendMessage(conversation, content, [], undefined, undefined, (messageUid, timestamp) => { console.log('消息发送成功', messageUid, timestamp); }, (error) => { console.error('消息发送失败', error); } ); }; // 生命周期 onMounted(() => { // 监听连接状态变化 wfc.eventEmitter.on(EventType.ConnectionStatusChanged, (status) => { connectionStatus.value = status; }); }); onUnmounted(() => { // 移除监听器 wfc.eventEmitter.off(EventType.ConnectionStatusChanged); }); </script> ``` ## API 参考 ### 初始化和连接 | 函数 | 描述 | | --- | --- | | `init(config?)` | 初始化SDK,可选传入自定义配置 | | `connect(userId, token)` | 连接到IM服务器 | | `disconnect()` | 断开连接 | | `getConnectionStatus()` | 获取当前连接状态 | ### 事件类型 可以通过 `wfc.eventEmitter.on(EventType.xxx, callback)` 来监听各种事件。 | 事件 | 描述 | | --- | --- | | `EventType.ConnectionStatusChanged` | 连接状态变化 | | `EventType.ReceiveMessage` | 接收到新消息 | | `EventType.SendMessage` | 发送消息 | | `EventType.RecallMessage` | 撤回消息 | | ... | 更多事件类型 | ### 会话类型 | 类型 | 值 | 描述 | | --- | --- | --- | | `ConversationType.Single` | 0 | 单聊 | | `ConversationType.Group` | 1 | 群聊 | | `ConversationType.ChatRoom` | 2 | 聊天室 | | `ConversationType.Channel` | 3 | 频道 | ## 开发 ```bash # 安装依赖 npm install # 启动示例项目 npm run serve # 构建SDK npm run build:lib ``` ## 许可证 MIT