2 Star 1 Fork 0

橘色的喵 / cloud_edge_push

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

已实现功能

  • web客户端上传文件

    • 支持从web客户端上传文件;

    • 支持从web客户端查询已上传文件信息;

    • 支持从web客户端推送指定已上传文件;

    • 支持断点续传;

    • 支持网页查看文件列表;

  • tcp客户端

    • 支持不同类型tcp客户端同时启动,不限定个数;
    • 将已下载的文件信息保存至file_infos.json,防止重复下载;
    • 定时上报已下载文件信息数据至服务器;
    • 支持断点续传;
    • 支持http和https下载;
    • 支持与服务器断链重连;
    • 支持配置文件读取,(tcp客户端类型,服务器地址等)

环境安装(ubuntu)

运行

  • 服务端

    • 运行服务方法 ./start.sh

    • http服务日志 logs/http.log,tcp服务日志logs/stream.log

    • 查询数据库数据

      • 查询某一个实例: localhost:9988/sys/v1/service_api?filename=libunqlite.so&type=client1
      • 全部查询实例,去除参数: localhost:9988/sys/v1/service_api
  • 客户端

    直接运行./edge_client

http服务和tcp服务任务下发

  • 使用内置的共享内存,http下发消息至tcp服务,然后推送至tcp客户端

tcp通讯协议:

消息 长度(BYTES) 结构 描述
Header 4 SyncBytes 识别码,表示不同设备之间的交互
Header 4 FullMessageLength 数据总长度,包括SyncBytes和FullMessageLength
Header 4 MeaageType 消息类型(消息号),如登录消息或发送消息消息
Header 4 StringBody 消息字符流长度
Body StringBodyLength StringBody 消息体长度,可能为0
Body FullMessageLength - 16 - StringBodyLength BinaryData 二进制数据,长度可能为0

注: 消息头总共16个字节(包括SyncBytes和FullMessageLength),消息体长度StringBodyLength是已知的,而二进制数据长度计算得到(FullMessageLength - 16 - StringBodyLength)。

BSD 3-Clause License Copyright (c) 2022, stallion5632 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

基于openresty实现的文件推送功能,实现对客户端的监控和更新。基于openresty共享内存,http服务接受上传文件,由tcp服务推送文件至tcp客户端。可用于tcp客户端的升级。 展开 收起
C++ 等 5 种语言
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/liudegui/cloud_edge_push.git
git@gitee.com:liudegui/cloud_edge_push.git
liudegui
cloud_edge_push
cloud_edge_push
master

搜索帮助