【OpenHarmony】 鸿蒙网络请求库之eventsource

简介

eventsource三方库是EventSource客户端的纯JavaScript实现。它提供了一种在客户端与服务器之间建立单向持续连接的机制,服务器可以使用这个连接向客户端发送事件更新,而客户端能够实时接收并处理这些更新。

下载安装

bash 复制代码
ohpm install @ohos/eventsource

使用说明

1、引入依赖

javascript 复制代码
import EventSource from '@ohos/eventsource';

2、在module.json5中添加权限

javascript 复制代码
"requestPermissions": [
    {
        "name": "ohos.permission.INTERNET"
    }
]

需要SSE服务器配合使用

服务端示例代码

创建一个可以传输事件流数据的node服务器,具体请看 server目录

javascript 复制代码
const express = require('express');
const serveStatic = require('serve-static');
const SseStream = require('ssestream');

const app = express()
app.use(serveStatic(__dirname));
app.get('/sse', (req, res) => {
  console.log('new connection');

  const sseStream = new SseStream(req);
  sseStream.pipe(res);
  const pusher = setInterval(() => {
    sseStream.write({
      event: 'server-time',
      data: new Date().toTimeString()
    })
  }, 1000)

  res.on('close', () => {
    console.log('lost connection');
    clearInterval(pusher);
    sseStream.unpipe(res);
  })
})

app.listen(8080, (err) => {
  if (err) throw err;
  console.log('server ready on http://localhost:8080');
})
客户端端示例代码
javascript 复制代码
import promptAction from '@ohos.promptAction';
import EventSource from '@ohos/eventsource'
@State es: null | Eventsource = null;
@State url:string = "http://localhost:8080/sse";
eventListener = (e: Record<"data", string>) => {
  this.simpleList.push(e.data);
}
// 创建连接
this.es = new EventSource(this.url)

// 开启监听
this.es.addEventListener("server-time", this.eventListener);

// 取消监听
this.es.removeEventListener("server-time", this.eventListener);

// 断开连接
this.es.close();

// 错误监听
this.es.onFailure((e: Record<"message", string>) => {
    // 得到错误消息,对错误消息做处理
})

错误监听需在创建连接开启的时候同步开启

DD一下: 鸿蒙开发各类文档,可关注公Z号<程序猿百晓生>霍取。
erlang 复制代码
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

接口说明

接口列表

名称 参数类型 说明
addEventListener (type:string,callback:()=>{}) 添加监听事件,当事件被触发的时候做出处理
removeEventListener (type:string,callback:()=>{}) 移除监听事件
close 无传参 断开连接
onFailure ((e:object)=>{}) e为错误对象,捕获错误

单元测试用例详见 TEST.md

约束与限制

  • DevEco Studio版本: 4.1.3.500, SDK: API11 Release(4.1.0)

目录结构

lua 复制代码
    |---- eventsource 
    |     |---- entry  # 示例代码文件夹
          |---- library # eventsource库文件
            |---- src
    |             |---- main
    |                  |---- ets
    |                       |---- eventsource.js  #eventsource           
    |     |---- README.md  # 安装使用方法  
    |     |---- README_zh.md  # 安装使用方法
相关推荐
贾伟康18 小时前
【口算王|12】HarmonyOS ArkTS 启动页实战:处理 Splash 到训练首页的稳定切换
harmonyos·arkts·启动优化·uiability·windowstage
企业通信技术笔记19 小时前
企业IM内外网隔离部署:DNS、证书、WebSocket与跨网接口设计
websocket·网络协议·架构·php·信息与通信
万物智能信息科技20 小时前
RK3568 的多路显示移植—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
linux·开发语言·华为·开源·harmonyos
流烟默21 小时前
HTTP 连接管理技术梳理:JDK KeepAliveCache 机制与池化选型
java·网络协议·http
万物智能信息科技21 小时前
MIPI DSI屏幕输出—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
嵌入式硬件·华为·开源·harmonyos·鸿蒙
Java小白笔记21 小时前
FlClash TUN 栈模式选择与验证指南
网络·网络协议
贾伟康21 小时前
【口算王|13】HarmonyOS ArkTS 应用启动链路实战:从 EntryAbility 到首屏加载保持窗口与路由稳定
harmonyos·arkts·arkui·应用启动·entryability
清水白石0081 天前
ThreadPoolExecutor 线程越多越快?从 30ms HTTP 调用讲透并发数、连接池与背压
网络·网络协议·http
IT小白杨1 天前
eBay多账号如何应对关联判定:主体、收款、IP、环境四层配置清单一次讲清
java·网络·网络协议·tcp/ip·自动化·指纹浏览器
万物智能信息科技1 天前
LVDS屏幕输出桌面—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
人工智能·华为·开源·harmonyos·鸿蒙