鸿蒙Next开发实战教程-使用WebSocket实现即时聊天

鸿蒙系统提供了WebSocket库,使用它可以很方面的实现即时聊天功能,今天就使用WebSocket来实现一个完整的聊天功能。

首先创建一个WebSocket实例:

复制代码
let ws = webSocket.createWebSocket()

然后创建WebSocket连接,我找到一个简单的ws地址,它直接返回我们发送的消息:

复制代码
let url = 'ws://124.222.224.186:8800'
this.ws.connect(url,(err,value)=>{  
  if(!err){    
    console.log('链接成功');    
    this.isConnected = true 
   }else {    
     console.log('连接失败')  
   }
})

接下来订阅WebSocket的相关事件,首先订阅WebSocket的打开事件,发送消息等事件要在该事件后才可以使用:

复制代码
this.ws.on('open', (err: https://zhida.zhihu.com/search?content_id=255068609&content_type=Article&match_order=1&q=BusinessError&zhida_source=entity, value: Object) => {  
  console.log("on open, status:" + (value as https://zhida.zhihu.com/search?content_id=255068609&content_type=Article&match_order=1&q=OutValue&zhida_source=entity).status + ", message:" + (value as OutValue).message);  
  // 当收到on('open')事件时,可以通过send()方法与服务器进行通信
});

然后订阅消息事件:

复制代码
this.ws.on('message',(error: BusinessError, value: string | ArrayBuffer) => {  
   console.log("on message, message:" + value);  
   let content:string = value.toString()  
   const reg = /<.*?>/g  
   content = content.replace(reg,'')  
   let item:MessageClass = {    id:'1',    content:content  }  
   this.msgList.push(item)  
   this.listScroller.scrollToIndex(this.msgList.length,true)
});

由于返回的消息为富文本,我这里加了一个正则过滤html标签,然后把它们存到数组里便于展示。

当我们发送消息时,可以调用send方法:

复制代码
this.ws.send(content, (err: BusinessError, value: boolean) => {  
  if (!err) {    
    console.log("send success");      
  } else {    
    console.log("send fail, err:" + JSON.stringify(err));  
  }
});

另外,当需要关闭连接时可以调用close方法:

复制代码
this.ws.close()

以上就是一个即时聊天功能的实现过程.

相关推荐
hhhjhl8 小时前
开源鸿蒙平台 KMP_CMP 三方库「Clikt」适配全流程
华为·开源·harmonyos
熊猫钓鱼>_>9 小时前
四种书签,一条时间线:一个读书 App 的记忆颗粒与它的边界案例【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙pc
Goway_Hui10 小时前
【KMP for OpenHarmony】-- 在鸿蒙工程中使用 Apollo-Kotlin
华为·kotlin·harmonyos
正在走向自律11 小时前
HarmonyOS 手机/平板远程控制 Windows 电脑实践指南
智能手机·电脑·harmonyos·todesk·远程工具
熊猫钓鱼>_>12 小时前
鸿蒙 PC 三方库适配复盘:libfvad 1.0 —— 把 WebRTC VAD 做成能装进采集链路的静态库
服务器·开发语言·华为·harmonyos·openharmony·适配·鸿蒙pc
aqi0013 小时前
AI编程让鸿蒙开发电子书APP更加快捷
android·华为·harmonyos·鸿蒙·harmony
熊猫钓鱼>_>13 小时前
鸿蒙PC高分屏与键鼠交互适配:DPI缩放、右键菜单一次讲清
开发语言·笔记·华为·ai编程·harmonyos·鸿蒙·鸿蒙心迹
Goway_Hui14 小时前
【KMP for OpenHarmony】Cache4k 0.14.0 鸿蒙适配
华为·kotlin·harmonyos
SZYSK15 小时前
OpenHarmony 上读卡、推理和双屏刷新抢 CPU:核验机与消费机的调度差
物联网·算法·harmonyos·1024程序员节