`
tyny
  • 浏览: 75614 次
  • 性别: Icon_minigender_1
  • 来自: 黄冈
社区版块
存档分类
最新评论

Rhino.Queues随笔3 网络接收流程

阅读更多


 接上一个节,看看消息的接收过程,如果按照于发送的对称的方法,大概也能猜出大概的过程。

与发送不同的是,并不是消息队列管理器QueueManager新建接收协调器,然后运行接收服务。真正的流程是QueueManager直接接收协调器 AcceptMessages(其实就是一个回调函数,不过其实他也不算真正的接收协调器,他只是负责消息接收序列化的存储,然后返回一个负责事务的另一个接收协调器IMessageAcceptance)初始化网络接收操作Receiver,网络接收操作本身就是一个tcp监听服务,然后按照一般的流程接收连接,并且按照队列协议处理相关的数据。

接收的流程对于写过网络程序人来说很简单,加之采用了一个异步辅助框架,这个会在后续文章里面提到。具体的流程如下

1、监听连接;
2、接收连接;
3、接收消息的长度;
4、按照步骤3的长度读取消息数据;
5、序列化收到的数据;
6、调用前面提到的QueueManager初始化接收连接时传递的AcceptMessages的回调函数保存消息,同时回调函数会返回另一个接收协调器负责后续的事务处理;
7、向发送方发送确认消息,然后等待发送收到确认消息后的回复;
8、收到发送方的回复的消息后,提交事务,或者没有收到,回滚事务;
9、如果步骤8提交事务出错,或者回滚事务,则向发送端发送撤销消息;如果正常则正常关闭。

流程可以参照如下,因为是所有的异步,所以这个流程的退出不会影响监听的。



 

  • 大小: 29.4 KB
分享到:
评论

相关推荐

    Rhino.Mocks-3.6

    3. **记录和回放(Record and Replay)模式**: 这是Rhino.Mocks早期版本的主要工作模式。在记录阶段,开发者定义mock对象的行为;在回放阶段,这些行为被用来验证代码执行是否符合预期。 4. ** Arrange-Act-Assert...

    rhino.inside-revit:这是Rhino.Inside:registered:.Revit的开源存储库

    Rhino.Inside:registered:.Revit 请参阅 ,以获取有关如何使用该项目的更多信息。 下面列出的部分为想要为该项目或Wiki做出贡献的开发人员提供了有关代码库的更多信息。 概述 Rhino.Inside:registered:技术允许...

    rhino.3高级应用

    rhino.3高级应用

    env.rhino.1.2.js

    Rhino就是JavaScript引擎,它的目的就是实现Java与JavaScript的互操作性。rhino-1.7R1.jar Envjs一个纯js方式在无浏览器环境下模拟浏览器的行为。envjs-1.2.js 一般网站js中都会用到jauery,所以还用了jauery.js

    rhino.python 教程 (英文)

    ### Rhino.Python 教程概览 #### 一、引言 《Rhino.Python 教程》是一本专为Rhino 5设计的指南,旨在帮助初学者掌握Rhino中Python编程的基础知识。该书由David Rutten撰写,最初是针对Rhino 4和VBScript编写的,...

    T-Splines 1.41 for Rhino.part1

    压缩包内的文件“T-Splines 1.41 for Rhino.part1.rar”、“T-Splines 1.41 for Rhino.part2.rar”和“T-Splines 1.41 for Rhino.part3.rar”是分卷压缩文件,用于分块传输大文件。用户需要下载所有分卷并使用合适的...

    t-splines.for.rhino.build.3.4

    标题 "t-splines.for.rhino.build.3.4" 暗示我们讨论的是一个针对Rhino软件的特定扩展或插件——T-Splines。T-Splines是一种高级建模技术,专为Rhino 3D建模软件设计,它允许用户创建更加自由流动、有机形状的设计,...

    rhino-1.7.14.jar下载

    rhino-1.7.14.jar下载

    rhino-1.7.7.1.jar(Rhino for java)

    Rhino的jar包。 Rhino 是开源的 JavaScript 引擎,是完全基于 Java 实现,几乎可以使用 JavaScript 完成 Java 所有的工作。

    rhino-engine-1.7.13.jar

    rhino-engine-1.7.13.jar

    rhino-1.7.7.2

    rhino-1.7.7.2是较新的版本,是一种用Java编写的Javascript解释器

    PyPI 官网下载 | compute_rhino3d-0.12.2.tar.gz

    在运维场景中,将`compute_rhino3d`集成到自动化流程中,可以帮助优化工作流,提高效率。例如,通过Jenkins或者Docker容器自动化测试和部署包含3D计算的项目,能够极大地减少手动操作的时间和错误。 总结起来,`...

    Inescop Sole 3D v3.0.0.0 for Rhino.rar

    ICad3DP is the software for 3D sole design with multiple tools for intuitive and simple creation of the different sole elements from a digitised last and through reverse engineering. A complex outsole...

    Rhino5_Python_Primer.pdf

    Rhino_Python_Primer.pdf Forums: The RhinoPython community is very active and offers a wonderful resource for posting questions/answers and fi nding help on just about anything!: ...

    3D建模软件Rhino 7.rar

    《全面解析3D建模软件Rhino 7:探索创新设计新境界》 Rhino,全名Rhinoceros 3D,是一款由McNeel公司开发的强大3D建模软件,尤其在工业设计、建筑设计、珠宝设计等领域享有极高声誉。Rhino 7作为其最新版本,带来了...

    Rhino3D_v5.11.50226.17195_32bit_Patch 和谐文件(破解补丁)

    Rhinoceros v5.0 SR11 犀牛建模软件,目前最新版,亲测可用! 官方简体中文版下载地址是: http://files.mcneel.com/dujour/exe/20150226/rh50_zh-cn_5.11.50226.17195.exe

    犀牛建模练习原创rhino.3dm

    rhino原创模型,数据不全,只是个新手练习建模的东西,学习建模思路,和方法。太难了,太难了不用拆除风扇,解决了矿用卡车风扇不易安装问题,排除安装过程中的安全隐患,提高矿用卡车的检修效率设备部件使用寿命,...

    rhino插件-Hare 2022.0.05

    rhino插件-Hare 2022.0.05,应用于于幕墙等方面的一款小插件! rhino插件-Hare 2022.0.05,应用于于幕墙等方面的一款小插件! rhino插件-Hare 2022.0.05,应用于于幕墙等方面的一款小插件! rhino插件-Hare 2022.0....

    Rhino.Raft:与 RavenDB 一起使用的 Raft 协议的实现

    3. **Rhino.Raft 的实现细节** - **选举机制**: Rhino.Raft 实现了 Raft 中的选举流程,包括心跳检测、投票逻辑和任期变更。 - **日志管理**: 保证日志条目的顺序性,避免冲突和数据丢失,同时支持日志的回放和...

    3D建模软件:Rhino二次开发-Rhino二次开发基础+几何形状创建+3D建模核心+3D打印等全套教程

    3D建模软件:Rhino二次开发_插件开发流程与技巧.docx 3D建模软件:Rhino二次开发_数据交换与文件格式.docx 3D建模软件:Rhino二次开发_案例研究与实践.docx 3D建模软件:Rhino二次开发_用户界面定制与扩展.docx 3D...

Global site tag (gtag.js) - Google Analytics