Flutter for OpenHarmony: Flutter 三方库 http_multi_server 在鸿蒙上同时开启多地址 HTTP 服务(局域网协作神器)

Flutter for OpenHarmony: Flutter 三方库 http_multi_server 在鸿蒙上同时开启多地址 HTTP 服务(局域网协作神器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net

在这里插入图片描述

前言

在进行 OpenHarmony 应用开发时,有时我们需要在 App 内部启动一个本地服务器,例如:

  • 为内嵌的 Webview 提供本地资源访问。
  • 在局域网内进行设备间的数据同步(如投屏、文件传输)。
  • 进行自动化集成测试。

通常的 HttpServer.bind 只能绑定一个地址(要么是 localhost,要么是具体的 IP)。而 http_multi_server 允许你一次性绑定多个地址,让你的鸿蒙 App 同时在本地回环和局域网 IP 上提供服务。

一、核心原理解析

它实际上是一个 HttpServer 的聚合器。它通过同时启动多个底层的 Dart HttpServer 实例,并将它们分发的请求流(Request Stream)进行合并。

鸿蒙 Flutter App

HttpMultiServer

HttpServer (localhost:8080)

HttpServer (192.168.1.10:8080)

HttpServer (::1:8080)

统一的 HttpRequest 流

业务处理逻辑 (如 shelf)

二、核心 API 实战

2.1 绑定所有可用地址

这是最通用的用法,会自动绑定 IPv4 和 IPv6 的所有可用环回或全局地址。

import'package:http_multi_server/http_multi_server.dart';voidstartServer()async{// 💡 在 8080 端口绑定所有可用地址final server =awaitHttpMultiServer.bind('any',8080);print('服务器已启动,正在监听:${server.address}'); server.listen((request){ request.response ..write('来自鸿蒙本地服务器的消息')..close();});}
在这里插入图片描述


在这里插入图片描述

2.2 绑定特定列表

final server =awaitHttpMultiServer.bind([InternetAddress.loopbackIPv4,'192.168.31.100',// 💡 鸿蒙真机的局域网 IP],8081);
在这里插入图片描述


在这里插入图片描述

2.3 获取实际监听地址

由于是多地址绑定,你可以通过属性查看具体详情。

print('连接地址列表: ${server.connections}');
在这里插入图片描述


在这里插入图片描述

三、OpenHarmony 平台适配

3.1 端口占用处理

在鸿蒙设备上启动服务器前,请务必检查端口是否被系统或其他应用占用。建议使用随机端口(端口号设为 0)。

3.2 局域网访问权限

💡 注意:如果希望局域网内的其他设备(如 PC 浏览器)访问鸿蒙手机上的该服务,除了 ohos.permission.INTERNET,通常还需要确保手机和电脑在同一个 WiFi 下,且关闭了 AP 隔离。

3.3 性能与能耗建议

在鸿蒙系统中,后台运行的 HTTP 服务可能会被系统挂起。如果用于长时间的文件传输,建议配合鸿蒙的“持续任务”申请相关的保活权限。

四、完整实战示例:鸿蒙企业级多端口分发中心

本示例展示了如何结合 shelf 框架,在鸿蒙设备上构建一个结构化的多址 HTTP 服务。

import'package:http_multi_server/http_multi_server.dart';import'package:shelf/shelf.dart';import'package:shelf/shelf_io.dart'as shelf_io;voidsetupOhosService()async{// 1. 💡 绑定所有地址 (any) 在 9000 端口final multiServer =awaitHttpMultiServer.bind('any',9000);// 2. 💡 路由处理逻辑 (包含路径过滤与 HTML 返回)Response_handler(Request request){// 过滤浏览器自动发起的图标请求if(request.url.path =='favicon.ico')returnResponse.notFound(null);returnResponse.ok('<h1>🚀 鸿蒙企业中心</h1><p>已成功处理来自 ${request.url.path} 的请求</p>', headers:{'content-type':'text/html; charset=utf-8'},);}// 3. 💡 集成 Shelf 管道与多址监听器var pipeline =constPipeline().addMiddleware(logRequests()).addHandler(_handler);// 💡 将 multiServer 实例传给 shelf_io 进行分发 shelf_io.serveRequests(multiServer, pipeline);print("✅ 服务已上线: http://localhost:9000");}
在这里插入图片描述


在这里插入图片描述

五、总结

http_multi_server 为 OpenHarmony 开发者处理复杂的网络拓扑提供了极大的便利。它屏蔽了 IPv4/IPv6 以及不同网络接口的底层差异,让你能通过同一套逻辑实现“内外网同时监听”。无论是做本地调试工具还是跨设备分发功能,它都是构建鸿蒙嵌入式服务的标准底板。

Read more

Flutter for OpenHarmony:Flutter 三方库 dart_mcp — 开启鸿蒙端的 AI Agent 通信协议新纪元(适配鸿蒙 HarmonyOS Next ohos)

Flutter for OpenHarmony:Flutter 三方库 dart_mcp — 开启鸿蒙端的 AI Agent 通信协议新纪元(适配鸿蒙 HarmonyOS Next ohos)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 Flutter for OpenHarmony:Flutter 三方库 dart_mcp — 开启鸿蒙端的 AI Agent 通信协议新纪元(适配鸿蒙 HarmonyOS Next ohos) 前言 随着生成式 AI 的爆发,Model Context Protocol (MCP) 正逐渐成为连接大型语言模型(LLM)与外部工具(Tools)、数据源(Resources)及上下(Context)的标准开放协议。它由 Anthropic 发起,旨在解决 AI 代理在获取现实世界信息时的碎片化问题。 在 Flutter for OpenHarmony 开发中,我们不仅关注 UI

By Ne0inhk

Google AI Studio 全指南:从入门到精通 Gemini 开发

在生成式 AI 的浪潮中,Google 凭借 Gemini 模型系列强势反击。而对于开发者来说,想要体验、调试并集成 Gemini 模型,最佳的入口并不是 Google Cloud Vertex AI(那是企业级的),而是 Google AI Studio。 Google AI Studio 是一个基于 Web 的快速原型设计环境,它允许开发者极速测试 Gemini 模型,并将测试好的 Prompt(提示词)一键转换为代码。本文将带你从零开始,掌握这款强大的工具。 一、 什么是 Google AI Studio? Google AI Studio 是 Google 为开发者提供的免费(或低成本)AI

By Ne0inhk
开发效率翻倍!JetBrains IDE 必备 AI 插件 Continue 安装配置指南

开发效率翻倍!JetBrains IDE 必备 AI 插件 Continue 安装配置指南

作为程序员,谁不想在写代码时少敲几行键盘、多省点时间?今天给大家推荐一款 JetBrains 系列 IDE(PyCharm、IntelliJ IDEA 等)的宝藏插件 ——Continue,它能靠 AI 帮你补代码、改逻辑、写文档,看完这篇就能上手用! 一、先搞懂:Continue 到底能帮你做什么? Continue 是专门为 JetBrains IDE 设计的 AI 辅助插件,核心是通过调用本地或云端的 AI 模型,帮开发者解决写代码时的各种 “麻烦事”,具体能实现这 5 个实用功能: * 代码快补 & 续写:比如你写了函数名,按下快捷键,AI 会根据文件上下文自动补全函数体,重复代码不用再手敲; * IDE 内直接问 AI:遇到代码报错、

By Ne0inhk
【保姆级教程】小白也能搞定!手把手教你部署AI小说生成器

【保姆级教程】小白也能搞定!手把手教你部署AI小说生成器

目录 一、 磨刀不误砍柴工:环境准备 二、 第一次安装:给代码安个家 第一步:把项目“搬”回家 第二步:造一个专属“房间” 第三步:安装依赖 第四步:点火启动 三、 关机重启后:如何再次开启? 四、 关键一步:配置“大脑”(API接口) 五、开始你的创作 六、写在最后:为什么推荐用蓝耘做“大脑”? 在这个AI辅助创作爆发的时代,拥有一款属于自己的本地AI写作工具,无疑是许多文字工作者的梦想。最近拿到一份AI小说生成器的部署文档,虽然功能强大,但对于非技术出身的朋友来说,那些代码和命令行多少有些“劝退”。 别担心,今天我们就把这份“天书”翻译成“人话”,手把手带你从零开始,搭建属于你的AI创作助手。无论你是第一次安装,还是关机后不知道怎么重启,这篇教程都能帮你搞定。

By Ne0inhk