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

news2024/11/25 10:35:10

场景介绍

在现代物流中,能够实时跟踪包裹信息,尤其是包裹重量,是非常重要的。在这种场景中,我们可以使用称重设备获取包裹的信息,然后实时将这些信息同步给 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多万款应用程序。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

获取java对象被更新的属性和值

业务场景 更新User信息后&#xff0c;需要收集哪些字段的哪些值被更新了。 思路 比较originUser和newUser&#xff0c;收集值不同的属性以及变化前后的值。 代码实现 public static Map<String, Map<String, Object>> getChange(Object originObject, Object ne…

Java 9 - 模块化系统

定义要导出的模块 package com.lfsun.java9study.mypackage;public class MyClass {public static void sayHello() {System.out.println("Hello from com.lfsun.java9study.mypackage!");}public static void main(String[] args) {System.out.println("test&…

【Linux】LVS负载均衡群集 DR模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 LVS负载均衡群集 DR模式 数据包流向分析DR 模式的特点LVS-DR中的ARP问题VIP地址相同导致响应冲突返回报文时源地址使用VIP&#xff0c;导致网关设备的ARP缓存表紊乱 DR模式 L…

Pycharm配置解释器(interpreter)

关于pycharm编译器的解释器&#xff0c;网友朋友的分享 Pycharm配置&#xff08;1&#xff09;——解释器&#xff08;interpreter&#xff09; 详细了解PyCharm支持的4种Python Interpreter和配置方法 对大多数人而言就只需要 分清虚拟解释器和系统解释器&#xff0c;使用虚拟…

关闭Win10的预览窗口

关闭Win10的预览窗口 每次拖拽文件都显示那个黑边的模型一样的东西&#xff0c;通过上面可以关闭该功能。

MBD开发 STM32 外部仿真

要接一个串口&#xff0c;用来设备和simulink的通信 烧录即可 烧录时选择串口

.360勒索病毒的加密数据怎么处理?|.360勒索病毒数据解密恢复

.360勒索病毒是一种恶意软件&#xff0c;它对用户的计算机文件进行加密&#xff0c;并要求支付赎金才能解密恢复数据。这种勒索病毒以其广泛传播和严重破坏性而闻名&#xff0c;给个人用户和企业带来了巨大的困扰和损失。 一家中型制造企业&#xff0c;名为XYZ制造有限公司&…

用科技智造新未来!在线开发平台强力助推数字化发展

在科技智造新时代&#xff0c;科技的力量是无处不见的。运用科技可以创造美好的生活&#xff0c;可以实现数字化发展&#xff0c;帮助企业实现流程化管理。在线开发平台将科技元素注入到平台中&#xff0c;将科技与办公需求相连接&#xff0c;创造高效率办公及流程化发展。 1…

# hub.docker.com镜像加速站点仓库的搭建与使用

hub.docker.com镜像加速站点仓库的搭建与使用 文章目录 hub.docker.com镜像加速站点仓库的搭建与使用1 镜像仓库搭建1.1 创建目录及docker-compose.yaml1.2 如果要开启密码验证&#xff0c;需要先生成密码1.3 启动服务 2 用户端使用3 最后 前段时间由于拉取docker镜像&#xff…

初出茅庐的小李博客之链表知识2

链表知识点2 通过malloc函数动态创建节点&#xff1a; #include <stdio.h> #include <stdlib.h>typedef struct List Node_t;struct List {/*数据区域有两个变量*/int a;float b;/*地址区域有一个指针*/Node_t* pNext; };Node_t Head_Node; //表头变量 Node_t Bo…

ChatGPT与Excel结合_编写VBA宏

先来解释下什么是Excel vba宏 ⭐Excel VBA宏&#xff08;Visual Basic for Applications&#xff09;是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏&#xff0c;以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA宏&a…

分布式——监控平台zabbix的认识与搭建

作为一个运维&#xff0c;需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等&#xff0c;利用监控系统的数据去了解网站上线发布的结果和健康状态。 利用一个优秀的监控软件&#xff0c;我们可以: ●通过一个友好的界面进行浏览整个网站所有的服务器状态 ●…

自学软件测试

自学软件测试体系&#xff08;1&#xff09; 前言&#xff1a;很多小伙伴想要自学软件测试课程走上测试工程师道路&#xff0c;基于此目的给出想要自学软件测试的一些小伙伴一些学习的方向。软件测试工程师的职业发展方向包括功能测试&#xff0c;自动化测试&#xff0c;专项测…

【Ubuntu学习MySQL——报错 ERROR 2002 (HY000)】

问题&#xff1a; 报错含义&#xff1a; 根据上面的报错&#xff0c;意思是说mysql想使用/var/run/mysqld/mysqld.scok文件&#xff0c;但是无法连接&#xff0c;接下来我们来看看这个文件是否存在 1.查看所有的sock文件 sudo find / -type s 根据上述命令所得出的结果可以知…

【REST规范】JAX-RS有哪些实现

JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services&#xff0c;是一个Java 编程语言的应用程序接口&#xff0c;支持按照表述性状态转移&#xff08;REST&#xff09;架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java注解来简化Web服务的客…

electron应用重启,开机自启动(electron开发常用的方法、优化方案)

文章目录 electron应用重启electron开机自启动To run a local app, execute the following on the command line: electron应用重启 获取应用软件的安装路径electron中屏幕全屏&#xff0c;最大化&#xff0c;最小化&#xff0c;恢复electron启动白屏时间过长优化方案1. 按需加…

web测试需要注意几个非常重要的测试点

微软语言标准&#xff1a; 全角字符和半角字符都要使用一个空格分开 英文和数字直接要有空页面分辨率&#xff1a; 通常是计算机的默认分辨率&#xff0c;但是还是会有一些老式电脑存在1024*768的情况 浏览器的兼容性&#xff1a; 目前市场上的主流浏览器&#xff1a;IE8.0-…

Kubernetes入门实战课-k8s的基本架构

Kubernetes入门实战课-k8s的基本架构 文章目录 Kubernetes入门实战课-k8s的基本架构Kubernetes 的基本架构标准工作语言 YAML学习经验总结 Kubernetes 的基本架构 Kubernetes 扮演的角色就如同一个“大师级别”的系统管理员&#xff0c;具有丰富的集群运维经验&#xff0c;独创…

Java多线程基础-10:代码案例之定时器

定时器就是一个闹钟。它可以设定一个时间&#xff0c;当时间到&#xff0c;就可以执行某个指定的代码。 定时器是实际开发中的一种非常常用的组件。比如网络通信中&#xff0c;如果对方 500ms 内没有返回数据&#xff0c;则要求断开连接尝试重连&#xff1b;又比如一个 Map&…

华为OD机试真题 Python 实现【网上商城优惠活动(一)】【2022 Q4 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、Python算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 某网上商城举办优惠活动&#xff0c;发布了满减、打折、无门槛3种优惠券&#xff0c;分别为&#xff1a; 1.每满100元优惠10元&#xff0c;无使用数…