您的位置:首页 > 文旅 > 旅游 > 石家庄网站设计制作_黑客网站推荐_怎么看app的下载网址_软考培训机构哪家好一点

石家庄网站设计制作_黑客网站推荐_怎么看app的下载网址_软考培训机构哪家好一点

2025/1/9 1:39:53 来源:https://blog.csdn.net/aqi00/article/details/143392928  浏览:    关键词:石家庄网站设计制作_黑客网站推荐_怎么看app的下载网址_软考培训机构哪家好一点
石家庄网站设计制作_黑客网站推荐_怎么看app的下载网址_软考培训机构哪家好一点

上一节我们把SocketIO库导入App工程,那么怎样通过SocketIO库来传递聊天消息呢?接下来就以文本消息为例,介绍如何利用SocketIO库在鸿蒙真机与服务器之间收发文本消息。
由于SocketIO库属于外部的第三方库,因此以源码方式导入SocketIO库的时候,还要补充相应的依赖配置。也就是打开App模块的的oh-package.json5,在dependencies节点内部添加库名、版本号或者库路径。以SocketIO库为例,给App工程导入该库的配置如下:

"dependencies": {"@ohos/socketio": "file:../library"
}

接着按照上一篇文章《引入第三方的SocketIO库》的说明,依次往App代码添加导包语句、声明语句,以及监听代码和连接代码。然后继续下面的文本消息发送与文本消息接收流程。

1、开启后端的SocketIO服务

首先按照《Android Studio开发实战:从零基础到App上线(第3版)》一书的“13.5 实战项目:仿微信的私聊和群聊”的操作步骤,在IDEA中导入该书源码的HttpServer工程,再启动源码里的SocketIO服务端程序。其中处理文本消息收发的SocketIO代码片段如下:

// 添加文本发送的事件监听器
server.addEventListener("send_text", String.class, (client, message, ackSender) -> {System.out.println(client.getSessionId().toString()+"发送文本消息:"+message);client.sendEvent("receive_text", "不开不开我不开,妈妈没回来谁来也不开。");
});

可见上面的服务端代码正在监听send_text接口,一旦从该接口接收到客户端发送的文本消息,就向客户端的receive_text接口反馈另一段文本内容。

2、通过SocketIO发送文本消息

回到鸿蒙App工程,调用SocketIO客户端的emit方法,向服务端的send_text接口发送文本字符串。发送代码如下:

this.client.emit('send_text', this.content);

3、通过SocketIO接收文本消息

前面的第二步只实现了向服务端发送文本消息,尚未实现从服务端接收文本消息。那么鸿蒙App工程还要调用SocketIO客户端的on方法,指定监听receive_text接口,从该接口获取服务端返回的文本消息。监听接口的处理代码如下:

this.client.on('receive_text', (text: string) => {console.info('receive_message: '+text)this.result = '收到服务端返回文本消息:'+text
})

4、取消文本消息的接收监听

注意,在退出消息页面的时候,需要同时取消接收文本消息的监听,也就是调用SocketIO客户端的off方法。取消监听的代码如下:

this.client.off('receive_text') // 取消接收文本消息的监听

最后编译运行App,在鸿蒙真机上点击发送按钮,向SocketIO服务器发送文本消息“小兔子乖乖,把门儿开开”,之后收到SocketIO服务器返回的文本消息“不开不开我不开,妈妈没回来谁来也不开。”根据下面的文本消息收发效果图,可知利用SocketIO成功实现了设备间的文本消息收发功能。

下一篇文章会介绍在收发图片消息时如何封装和解析JSON串。
 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com