OpenHarmony网络通信-socket-io

527 篇文章 1 订阅
517 篇文章 2 订阅

简介

socket.io是一个在客户端和服务器之间实现低延迟、双向和基于事件的通信的库。建立在 WebSocket 协议之上,并提供额外的保证,例如回退到 HTTP 长轮询或自动重新连接。

效果展示

下载安装

ohpm install @ohos/socketio 

OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包

使用说明

  1. 导入依赖库
import { client_socket } from '@ohos/socketio';
  1. 初始化socket.io客户端
client: client_socket = new client_socket();
  1. 设置监听事件
this.client.set_open_listener(this.on_open.bind(this));
this.client.set_fail_listener(this.on_fail.bind(this));
this.client.set_reconnecting_listener(this.on_reconnecting.bind(this));
this.client.set_reconnect_listener(this.on_reconnect.bind(this));
this.client.set_close_listener(this.on_close.bind(this));
this.client.set_socket_open_listener(this.on_socket_open.bind(this));
this.client.set_socket_close_listener(this.on_socket_close.bind(this));
  1. 连接服务器
this.client.connect(uri) //uri: socket.io服务端地址
  1. 设置用户消息监听以及用户加入离开监听
  • 监听事件实现
on_user_left_listener(event_json: string): void {
	//回调数据处理
}
  • 设置监听
this.client.on("new message", this.on_new_message_listener.bind(this));
this.client.on("user joined", this.on_user_joined_listener.bind(this));
this.client.on("user left", this.on_user_left_listener.bind(this));
this.client.on("login", this.on_login_listener.bind(this));
  1. 登录服务器,并设置登录成功回调
this.client.emit("add user", username, this.on_emit_callback.bind(this));
  1. 发送消息并设置发送消息监听
this.client.emit("new message", message, this.on_emit_callback);
  1. 关闭服务器链接并清理监听事件
this.client.socket_close();
this.client.clear_socket_listeners();

接口说明

  • 初始化客户端
client: client_socket = new client_socket();
  • 设置客户端监听器
set_open_listener(on_open: () => void)
  • 设置客户端失败监听器
set_fail_listener(on_fail: () => void)
  • 设置客户端正在重新连接监听器
set_reconnecting_listener(on_reconnecting: () => void)
  • 设置客户端重新连接监听器
set_reconnect_listener(on_reconnect: () => void)
  • 设置客户端关闭监听器
set_close_listener(on_close: (reason: string) => void)
  • 设置socket打开监听
set_socket_open_listener(on_socket_open: (nsp: string) => void)
  • 设置socket关闭监听
set_socket_close_listener(on_socket_close: (nsp: string) => void)
  • 连接服务器
connect(uri: string)
  • 清楚所有监听器
clear_con_listeners()
  • 清楚所有socket监听器
clear_socket_listeners()
  • 设置重连次数
set_reconnect_attempts(attempts: number)
  • 设置重新连接尝试的延迟时间
set_reconnect_delay(millis: number)
  • 设置重新连接的最大延迟。
set_reconnect_delay_max(millis: number)
  • 关闭连接
close()
  • 同步关闭
sync_close()
  • 判断是否打开
opened(): boolean
  • 获取sessionID
get_sessionid(): string
  • 注册一个新的响应服务器事件的事件处理器
on(event_name: string, on_event_listener: (event_json: string) => void)
  • 设置socket监听关闭
socket_close()
  • 设置错误监听
on_error(on_error_listener: (message: string) => void)
  • 关闭错误监听
off_error()
  • 通过提供的name事件名称向socket标志发送事件
    说明: 响应服务器用来确认消息的应答
emit(name: string, message: string, on_emit_callback?: (emit_callback_json: string) => void)

源码下载

  1. 本项目依赖 socket.io-client-cpp 库,通过git submodule引入,下载代码时需加上--recursive参数。
git clone --recursive https://gitee.com/openharmony-tpc/openharmony_tpc_samples.git
  1. Linux环境无需执行该步骤,如果是windows环境下,代码下载完成后合入OHOS适配的代码,cd 进入到socketio/library/src/main/cpp/thirdModule 目录下,执行 modify.sh 脚本,将本目录下的 patch 文件合入到 socket.io-client-cpp 源码中。
  2. 开始编译项目。

约束与限制

在下述版本验证通过:

  • IDE:DevEco Studio 4.1.3.532; SDK: 4.1.0.67(SP3)。
  • IDE:DevEco Studio Next ,Developer Beta1(5.0.3.121); SDK:API12 (5.0.0.16)。

目录结构

|---- socketio  
|     |---- entry  # 示例代码文件夹
|     |---- library  # socket.io库
|           |---- ets #对外接口目录
				  |---- client_socket.ets # 对外接口
            |---- cpp # 组件代码目录
                  |---- src # 核心类目录
                  |---- client_socket.cpp # socket.io客户端NAPI层
|     |---- README.md  # 安装使用方法                    

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

  • 30
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值