实时包裹信息同步:WebSocket 在 Mendix 中的应用

场景介绍

在现代物流中,能够实时跟踪包裹信息,尤其是包裹重量,是非常重要的。在这种场景中,我们可以使用称重设备获取包裹的信息,然后实时将这些信息同步给 Mendix 开发的 App,并在 App 的页面上实时显示包裹信息。这种实时的、无缝的信息同步提供了一个更好的用户体验,增强了物流服务的效率和准确性。

WebSocket 简介

WebSocket 是一种网络通信协议,提供了全双工的通信通道。与 HTTP 不同,WebSocket 保持连接开放,允许数据在客户端和服务器之间实时双向传输。这使得 WebSocket 成为实现实时应用的理想选择。

WebSocket 场景应用

WebSocket 在实际开发中被广泛应用,这主要是因为它支持全双工通信,能够在客户端和服务器之间提供实时、双向的数据交换。以下是一些使用 WebSocket 的实际开发场景:

  1. 实时消息应用:例如聊天应用或社交媒体平台,需要实时地将消息从一个用户发送到一个或多个其他用户。WebSocket 可以实现用户间的实时通信,且不需要频繁地进行服务器轮询。

  2. 多人在线游戏:在实时多人游戏中,如射击游戏或角色扮演游戏,玩家之间的行为和位置需要实时同步。WebSocket 提供了低延迟、高效的数据传输方式。

  3. 实时数据同步:例如在金融交易平台,股票价格、交易量等数据需要实时更新。或者在物流系统中,实时追踪包裹的位置信息。

  4. 协同编辑工具:如Google Docs 或在线白板应用,允许多个用户同时编辑一个文档,需要实时地将每个用户的编辑同步到其他所有用户。

  5. 在线教育或直播:在线教育平台或直播应用,需要将教师或主播的视频、音频或互动信息实时传输给所有的观看者。

  6. 物联网(IoT)应用:例如智能家居系统,需要实时接收和处理来自各种设备(如灯光、空调、安全系统等)的数据。

  7. 实时运营分析:例如电商网站或应用,可以使用 WebSocket 技术实时展示用户行为、网站流量、销售数据等,以便运营人员做出快速决策。

以上场景都需要实时、高效的数据交换,这正是 WebSocket 所擅长的。

在 Mendix 中实现实时称重场景

在 Mendix 中,我们可以逐步构建实现实时称重场景的应用。下面是实现此场景所需的步骤:

  1. 项目创建: 首先,在 Mendix Studio Pro 中创建一个新的项目,为我们的称重应用提供基础架构。
  • 选择一个空白的项目作为模板,参考下图:

image.png

  • 创建项目,参考下图:

image.png

  1. WebSocket 组件下载: 接着,从 Mendix App Store 下载 WebSocket 模块。这个模块将帮助我们建立和管理 WebSocket 连接。

本次场景使用的组件是,(EZ Websocket),如下图:

image.png

  1. 数据模型构建: 接下来,构建一个数据模型来表示我们的包裹信息。数据模型可能包含包裹的重量,扫描时间等属性。
  • 创建 【包裹】和【称重设备】的数据实体,如下图:

image.png

  1. 页面构建: 使用 Mendix 的页面编辑器构建一个页面,用于实时显示包裹信息。你可以使用数据视图和数据网格小部件来展示数据。
  • 创建扫描之后的包裹页面,用于实时显示包裹的信息,如下图:

image.png

  • 配置EZ Websocket client,用于实时显示包裹的扫描信息,如下图:

image.png

Websocket identifier: websocket 的server endpoint
Object Id:用于标识需要实时更新的对象唯一ID,
Action configuration:添加Trigger 微流,通过这个微流来更新数据。

  • 下面是Refresh 微流的截图:

image.png

  1. API编写: 在后端,编写一个API,通过这个API我们能够从称重设备获取数据。
  • Rest API 的结构如下:

image.png

  • 称重设备需要返回的API数据结构如下图:

image.png

  • API 的业务逻辑如下:

image.png

  1. 业务逻辑实现: 使用 Rest API,创建一个 API,用于称重设备连接,然后将称重包裹信息通过API返回给Mendix 的APP,最后在应用的页面中实时显示包裹信息。
  • 具体的调用逻辑流程如下图:

image.png

  • 包裹数据通过API调用之后,使用EZ Websocket的notify组件通知监听的客户端。

微流如下图:

image.png

  • Notify组件配置如下图:

image.png

  1. 场景演示: 在完成所有设置后,现在可以运行你的 Mendix 应用并进行测试。当你的设备开始扫描和称重包裹,你应该能在 Mendix 应用中看到包裹信息的实时更新。

tutieshi_640x325_27s.gif

通过以上步骤,我们在 Mendix 中成功实现了实时称重场景,使用户能够在 App 中实时看到最新的包裹信息。

技术点

在这个称重信息实时同步的场景中,我们运用了许多技术设计点,包括:

数据模型构建:我们使用 Mendix 的数据模型构建工具来定义和管理包裹信息。这是一个关键的步骤,因为数据模型定义了我们在整个应用中如何存储和处理数据。

UI页面构建:使用 Mendix 的页面编辑器,我们创建了一个用户友好的、交互性强的用户界面,用户可以在这里实时查看到包裹信息。

WebSocket组件使用:通过在 Mendix 中引入 WebSocket 组件,我们成功地创建了一个与称重设备的实时连接。这使我们可以实时接收到设备发送的包裹信息,并立即在页面上展示出来。

API开发:我们开发了一个 API 用于从称重设备获取数据。这个 API 的开发是实现实时数据同步的关键,它为称重设备提供了一种将数据发送到我们应用的方式。

这些技术设计点的应用,使得我们能够成功实现实时称重场景,展示了 Mendix 平台强大的开发和定制能力。

总结

通过采用WebSocket,我们实现了从称重设备到Mendix应用的实时数据推送,提升了用户体验并提供了无缝的包裹跟踪解决方案。这种实时性对于很多业务场景都是非常重要的,尤其是对于物流业务,它需要准确、快速地反馈包裹信息。

Mendix作为一个低代码开发平台,为我们提供了构建此类应用的能力。我们利用Mendix中的数据模型工具、页面编辑器、WebSocket组件和API开发工具,构建了完整的实时称重应用。这反映出Mendix的强大开发和定制能力,能够快速响应业务需求,加快应用开发和部署。

总的来说,WebSocket在物流业务中的应用以及Mendix的快速开发能力,共同推动了业务流程的优化和效率提升。这也再次证明了实时数据同步对于提升业务效率、优化用户体验的重要性。

最后

✏✏欢迎大家留言交流,✉ 有需要的的小伙伴可以留下邮箱,我们可以将这个场景的Demo 文件发给大家。谢谢😚!!

关于Mendix公司

在“数字优先”时代,客户希望自己的每一项需求都得到预期,员工希望利用更高效的工具来完成各自的工作,而企业深知,全面实施数字化转型是生存和成功的关键。作为西门子Xcelerator平台的低代码引擎,Mendix正在迅速成为推动企业数字化发展的首选应用程序开发平台。Mendix公司通过其业界领先低代码平台、专业的合作伙伴网络以及广泛的市场,为各种高级技术解决方案提供支持,从而帮助客户提高参与度、简化运营并缓解IT僵局。Mendix建立在抽象化、自动化、云和协作的基础之上,极大地提高了开发人员的生产力,并支持业务技术人员通过提供其特定领域的专业知识和指导,与开发人员共同创建应用程序。Mendix让企业能够以前所未有的速度构建应用程序、促进IT团队与业务专家之间开展有意义的协作,并帮助IT团队保持对整个应用程序环境的控制。作为一直被领先的行业分析师视为“领军者和远见者”的低代码平台,Mendix是云原生的、开放的、可扩展的、敏捷的,并且经过实践验证。从人工智能和增强现实,到智能自动化和原生移动,Mendix和西门子Xcelerator已成为“数字优先”企业的中坚力量。Mendix已被46个国家的4000多家企业采用,并建立了由30多万名开发人员组成的活跃社区,这些开发人员使用该平台创建了20多万款应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/34810.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用git下载gitee上的项目资源

目录 用git下载gitee上的项目资源 用git 的clone 命令 然后到gitee上复制相关的下载地址: 粘贴到clone后面即可(注意地址与clone之间有空格!!!) 运行结果: 用git下载gitee上的项目资源 用git…

MySQL安装与部署

第一种方法:在线安装 配置一个安装yum源 Adding the MySQL Yum Repository 可以手动配置yum源,baseurl指向国内镜像源地址,比如清华、中科大。 Installing MySQL Starting the MySQL Server: 查询临时登录密码 修改数据库密码…

golang 结构体struct转map实践

1、反射 type sign struct { Name string json:"name,omitempty" Age int json:"age,omitempty" } var s sign s.Name "csdn" s.Age 18 //方式1 反射 var data make(map[string]interface{}) t : reflect.TypeOf(s) v : …

Spring Bean的实例化过程

一、前言 对于写Java的程序员来说,Spring已经成为了目前最流行的第三方开源框架之一,在我们充分享受Spring IOC容器带来的红利的同时,我们也应该考虑一下Spring这个大工厂是如何将一个个的Bean生产出来的,本期我们就一起来讨论一…

2023年第三届工业自动化、机器人与控制工程国际会议

会议简介 Brief Introduction 2023年第三届工业自动化、机器人与控制工程国际会议(IARCE 2023) 会议时间:2023年10月27 -30日 召开地点:中国成都 大会官网:www.iarce.org 2023年第三届工业自动化、机器人与控制工程国际…

Redis通信协议

RESP协议 Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和PubSub): ① 客户端(client)向服务端(server)发送一条命令 ② 服务端解析并执行命令,返回响应结果…

Spring MVC各种参数进行封装

目录 一、简单数据类型 1.1 控制器方法 1.2 测试结果 二、对象类型 2.1 单个对象 2.1.1 控制器方法 2.1.2 测试结果 2.2 关联对象 2.2.1 控制器方法 2.2.2 测试结果 三、集合类型 3.1 简单数据类型集合 3.1.1 控制方法 3.1.2 测试结果 3.2 对象数据类型集合 3.…

使用MQL4编写自己的交易策略:技巧与经验分享

随着技术的发展,越来越多的投资者开始使用程序化交易系统进行交易,其中MQL4语言是广泛应用于MetaTrader 4平台上编写交易策略的一种语言。本文将分享一些技巧和经验,帮助读者利用MQL4编写自己的交易策略。 策略开发流程 首先,我…

传输控制协议 TCP

文章目录 一、TCP报文格式1.报头格式2.TCP最大段长度 MSS 二、TCP连接建立与释放1.连接建立:三次握手2.报文传输3.连接释放:四次挥手4.保持定时器与时间等待定时器 三、TCP差错重传1.字节流状态分类与滑动窗口(发送)① 滑动窗口两…

Android Studio实现内容丰富的安卓博客发布平台

如需源码可以添加q-------3290510686,也有演示视频演示具体功能,源码不免费,尊重创作,尊重劳动。 项目编号078 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看博客列表…

[AJAX]原生AJAX——自定义请求头

客户端 <script>// 1、创建对象const xhr new XMLHttpRequest();// 2、初始化&#xff1a;设置请求类型和urlxhr.open(POST, http://127.0.0.1:8000/server);// 设置请求头// Content-Type&#xff1a;设置请求体内容类型// application/x-www-form-urlencoded&#xf…

2022(二等奖)C2464植物保护管理系统

作品介绍 一、需求分析 1. 应用背景 森林是陆地生态系统的主体&#xff0c;是人类生存与发展的物质基础。以森林为主要经营对象的林业&#xff0c;不仅承担着生态建设的主要任务&#xff0c;而且承担着提供多种林产品的重大使命。进入21世纪&#xff0c;人类正在继农业文明和…

二进制、十进制相互转换

二进制转十进制&#xff1a; 1100 0000转为十进制的数值为&#xff1a;12864192 十进制转二进制&#xff1a; 列如&#xff1a;十进制数为202 1286432168421二进制11001010 解析&#xff1a; 202>128&#xff0c;第一个二进制数为&#xff1a;1 202-128>64&#xf…

Spring 事务管理方案和事务管理器及事务控制的API

目录 一、事务管理方案 1. 修改业务层代码 2. 测试 二、事务管理器 1. 简介 2. 在配置文件中引入约束 3. 进行事务配置 三、事务控制的API 1. PlatformTransactionManager接口 2. TransactionDefinition接口 3. TransactionStatus接口 往期专栏&文章相关导读 …

【Lua】ZeroBrane Studio免费专业IDE使用详解

▒ 目录 ▒ &#x1f6eb; 问题描述环境 1️⃣ IDE界面说明项目目录编辑器控制台窗口输出窗口选择解释器堆栈窗口监视窗口大纲窗口 2️⃣ 调试程序3️⃣ 自定义lua解释器编译自己的lua解释器增加interpreters配置文件重启IDE 4️⃣ 其它IDE比较Lua EditorVSCode &#x1f6ec; …

Redis:redis基于各大实战场景下的基本使用

文章目录 前言String 命令实战1.业务缓存对应redis中的指令伪代码 2.分布式锁对应redis中的指令伪代码 3.限流对应redis中的指令伪代码 List 命令实战1.提醒功能对应Redis中的指令伪代码 2.热点列表对应Redis中的指令伪代码 Hash 命令实战1.用户资料缓存对应redis中的指令伪代码…

算法设计与分析 课程期末复习简记

目录 网络流 线性规划 回溯算法 分支限界 贪心算法 动态规划 分治算法 算法复杂度分析 相关概念 网络流 下面是本章需要掌握的知识 • 流量⽹络的相关概念 • 最⼤流的概念 • 最⼩割集合的概念 • Dinic有效算法的步骤 • 会⼿推⼀个流量⽹络的最⼤流 下面对此依次进行复…

数据结构--串的定义和基本操作

数据结构–串的定义和基本操作 注:数据结构三要素――逻辑结构、数据的运算、存储结构&#xff08;物理结构) 存储结构不同&#xff0c;运算的实现方式不同 \color{pink}存储结构不同&#xff0c;运算的实现方式不同 存储结构不同&#xff0c;运算的实现方式不同 串的定义 串 …

suse ha for sap scale-up性能优化场景安装配置

1. 安装SUSE操作系统 在官网下载SUSE Linux Enterprise Server for SAP Applications安装介质&#xff0c;在安装操作系统过程中&#xff0c;选择SUSE Linux Enterprise Server for SAP Applications操作系统。 在软件选择界面&#xff0c;根据需要选择SAP HANA Server Base…

Pytorch--模型微调finetune--迁移学习 (待继续学习)

https://www.bilibili.com/video/BV1Z84y1T7Zh/?spm_id_from333.788&vd_source3fd64243313f29b58861eb492f248b34 主要方法 torchvision 微调timm 微调半精度训练 背景&#xff08;问题来源&#xff09; 解决方案 大模型无法避免过拟合&#xff0c;