问题标签 [asynchronous-messaging-protocol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 链接延迟回调
我正在尝试在 AMP 客户端中链接延迟,如下所示:
客户:
服务器:
只有connect()
在服务器端被解雇
python - LoopingCall AMP 命令
为什么我在尝试实现调用 AMP 命令的 LoopingCall 函数时会出错?
myamp.say()
在循环内调用时出错:
python - 示例如何测试扭曲的 AMP
我试图弄清楚如何为 Twisted AMP 编写单元测试,但我似乎失败了。我检查了源代码,但它非常压倒性。
任何人都可以写或指出一个测试简单 AMP 协议通过响应者发送数据和接收数据的示例吗?
python - Serializing twisted.protocols.amp.AmpList for testing
I have a command as follows:
And I have a responder for it in a controller:
I am writing a unit test for it. This is my code:
Where ProtocolMixin is as follows:
It works if AmpList
is not involved, but when it is - I get following error:
Which makes sense, but how do I serialize a list in AddChatMessagesTest.data
?
python - 扭曲的 python 请求/响应消息和大量二进制数据传输
我正在尝试使用带有潜在 C# 和 ObjC 客户端的 python-twisted 来实现服务器。我从 LineReceiver 开始,它适用于基本消息传递,但我无法找出更强大的最佳方法。对于以下要求的简单解决方案有什么想法吗?
- 请求和响应
- 前任。发送消息以获取状态,接收状态返回
- 接收二进制数据传输(非平凡,但不是海量 - 少于几兆)
- 前任。小 png 文件的字节数
对于第一种情况,AMP 似乎是一个可行的解决方案,但可能无法处理数据传输情况的大小。
我也看过完整的 SOAP,但还没有找到一个足够好的例子来让我继续前进。
python - Twistd amp 协议:生产者/消费者模式?
我想使用协议在服务器/客户端之间发送数据:超过 65,535 字节限制大小的unicode(字符串)列表。处理限制大小问题的一个很好且干净的解决方案是实现生产者/消费者模式。
不幸的是,我阅读了文档和示例,但找不到如何开始。对于小规模的传输数据,我的放大器实现效果很好。我在这里展示了我的代码的相关部分。
命令
服务器
客户
一些生成数据的代码(在上面的工厂构造函数中使用)
python - stompest 在 python 解释器退出之前不发送 ack
我有一个在自己的服务器上运行的 rabbitmq 队列。
我可以sudo rabbitmqctl list_queues
在这台服务器上做队列中的消息数量。
在另一台服务器上,我收到 10 帧,并确认它们。然后我检查队列中的消息数量,并且数量没有改变。
然后我关闭 python 解释器并检查队列服务器上的消息数量,该数量减少了预期的数量(10)。我可以多次重复此过程,并且会发生相同的行为。
如果这是按照设计,我怎样才能让 ack 立即发生?我认为客户端类的del方法中可能存在奇怪的行为,但是没有。
是否发生了一些无证的魔术?
我的“确认”代码:
python - 应如何取消 Twisted AMP Deferred?
我有一个 Twisted 客户端/服务器应用程序,其中客户端要求多个服务器使用 AMP 完成额外的工作。第一个响应客户端的服务器获胜——其他未完成的客户端请求应该被取消。
Deferred
对象支持cancel()
和取消函数可以传递给Deferred
的构造函数。但是,AMP 的sendRemote()
api 不支持传递取消函数。此外,我希望取消函数不仅在完成后停止处理本地请求,而且还从远程服务器中删除请求。
AMPBoxDispatcher
确实有一个stopReceivingBoxes
方法,但这会导致所有延迟出错(不是我想要的)。
有没有办法取消 AMP 请求?
python - 应用程序在微服务架构中进行通信的最佳方式是什么
我必须设计和实施一个服务交付平台。我目前的设计中有各种服务,所有这些工具都使用不同的技术。有些是基于 erlang 的并发 map-reduce 函数,有些是用于聚合一些文本文件的简单 bash 脚本。
我听说过XML/RPC、Protocol Buffer、message-pack、soup和AMQP。目前我使用JSON,但加载和转储大型 json 文件有点费时/内存。是否有任何新的或稳健的方法可以在 HTTP 基础架构上的各种技术之间架起一座桥梁,并提供广泛的编程语言支持和良好的文档?
我还需要提到的是,我相信复杂性比延迟问题或其他与连接相关的问题更具腐蚀性。因此 JSON 替换不能增加设计的复杂性。
twisted - Python 之外的异步消息协议兼容性(和扭曲的)
异步消息协议是 python-twisted 中的一个简单协议。我有一个相当完整的应用程序(python、twisted、kivy)使用它。客户端-服务器架构实现了一种视图-控制器类型的关系,几乎所有的业务逻辑都是服务器端的,UI 接口代码只是反映模型状态的变化(由服务器发送)并发送适当的 AMP 消息。
以下是 AMP 协议在其他语言中的实现列表,但有些看起来未完成,而且大多数似乎并没有真正用于任何严肃的事情。
我正在研究的用例是一个完全 Python 的应用程序,目前可以在 Windows、Linux 和 Android 上运行(如果我有时间构建它,可能是 iOS)。将来可能会用“本机”语言(例如 Android 上的 Java/Swift)替换 View/UI 位,同时将业务位保持在 python 和扭曲中。
所以我有两个主要问题:-
说 AMP 仅在 python-twisted 和使用它的程序中真正使用是否准确?
是否还有其他更普遍有用的网络协议,它们既可以在twisted 中实现,也很容易在twisted 中使用并且是非特定的(例如jabber 真的只用于聊天)?最好不需要像 WAMP/autobahn 这样的服务器(如果我理解正确的话),因此它可以在任何可以运行 python 的设备中自包含。