问题标签 [messaging]
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.
c# - 如何在 C# 中跨本地网络进行 UDP 多播?
我正在尝试在我的本地网络上进行一些简单的 UDP 通信。
我要做的就是对网络上的所有机器进行多播
这是我的发送代码
这是我的接收代码
它可以在我的本地机器上完美运行,但不能通过网络运行。
- 似乎不是防火墙。我在两台机器上都禁用了它,它仍然无法正常工作。
- 如果我直接发送到客户端机器的硬编码IP地址(即不是多播),它就可以工作。
任何帮助,将不胜感激。
messaging - 消息代理和 ESB 之间的区别
我已经阅读了有关消息代理和 ESB 的不同问题/文章(甚至在 stackoverflow 上)。仍然不知道消息代理和 ESB 之间的明确划分区别是什么?现在我在这里尝试比较产品,Websphere Broker 和 Mule ESB!
首先,(任何版本)Webshere Broker 是 ESB 吗?我们的 IBM 产品人员声称它是 ESB!(我对此并不感到惊讶)。
我有限的信息告诉我,Message Broker 在 HUB-SPOKE 模型上工作。然而,ESB 在总线架构上工作。这到底是什么意思?我已经读过,如果 HUB 失败(我猜不可用)那么经纪人就完全失败了。这不是 ESB 的情况(所以那些人说)。我在这里不明白的是“如果 BUS”发生故障怎么办?
现在关于 ESB 和 Brokers 的常见内容是,它们提供路由、转换、编排等。因此,如果它们都提供这些,那么我为什么要选择一个而不是另一个。
另一个冲突领域是关于转型。与 Message Brokers 相比,ESB 是否以不同的方式促进它?我真的很想对此有所了解。
现在谈论水平缩放。谁胜过谁?或者它们在复杂性(或任何其他因素)方面都具有同等的可扩展性。当然,在成本方面,Webshpere Broker 会为每个盒子(更不用说每个 cpu)向您收费。我相信,即使是商业 MULE ESB 也不会这样做。撇开其中的成本部分不谈,ESB 扩展和 Message Broker 扩展的含义是什么。我碰巧知道您可以在 ESB 中扩展到服务级别。这在消息代理中可能吗?
java - 任何可用于将消息从 COBOL 发送到 Java 的开源消息队列?
我有一个 Java 堆栈(Tomcat 等),我需要将消息从运行 COBOL 的大型机发送到 Java 端。任何可用的开源队列都可以做到这一点吗?
java - 如何用英语以外的语言发送短信
我正在使用 Logica SMPP api 发送短信。我可以发送默认数据编码为“0”的纯英文消息现在如果我想用其他语言(如印地语或中文)发送短信,我应该设置哪些不同的值..
我应该为此创建一个 UDH 吗?我应该使用什么数据编码?我应该设置什么 esm 类?我应该将数据作为 unicode 发送吗?
对此的任何建议都将非常有用。
java - MQJE018:协议错误 - 收到意外的段类型
呼叫所有 MQ 大师,
我的桌子下面有一个盒子,我们用它来复制我们的生产环境,它是:
WebSphere 6.1 Fedora Linux MQ 6.0
每当我们的一个应用程序尝试向 MQ 队列发送消息时,我们都会收到以下错误:MQJE018:协议错误 - 收到意外的段类型
任何有关这可能意味着什么的建议都将不胜感激,堆栈跟踪如下。
编辑:我在 IBM 文档中查找了原因代码,但几乎没有帮助
messaging - 如何通知用户另一个在线?
我正在使用 yahoo messenger 与我的朋友聊天。每次我的一个朋友(几乎是中间)上线时,YM 都会通知我。雅虎怎么样!(和其他公司)如何实施?据我猜测,有一些技术可以解决这个问题:
拉动:客户端不断(可能持续 500 毫秒)询问服务器哪些用户(在用户列表中)刚刚上线,然后通知用户。
推送:服务器确定哪些用户上线,然后向客户端发送通知。
第二种方法更容易接受。用户的数据可能包含他的朋友列表(谁将他添加到他们的列表中),并且登录事件引发,服务器应用程序将向该列表中的所有用户发送通知消息。
好吧,这只是我的猜测。现实中是如何实现的?你能告诉我吗?
谢谢你。
client-server - 用于服务器到客户端通信的 MSMQ
我们正在研究 MSMQ 以实现持久的“推送”服务器到客户端的通信。每台服务器最多可以有 1000 个客户端。
在我们的一个测试中,我们向 300 个离线客户端发送了一条小消息,然后向一个在线客户端发送了一条消息。最后一条消息延迟了 40 多分钟,因为 MSMQ 正在处理无法传递的消息(通过 MMC 观察到)。我们还使用 MSMQ 作为它运行良好的返回路径。
有没有办法通过减少尝试连接到脱机主机的时间来使 MSMQ 适应这种使用模式?如果没有,是否还有其他更适合的排队产品,或者它是你自己的时间?原始吞吐量不是优先级,但传出队列的数量和可预测性/最大延迟是优先级,客户端(可能是相当旧的机器)上的内存占用也是如此。
client - 如何创建消息服务?
我想创建一个使用 XMPP 协议的消息传递服务。我将如何实现该服务的服务器端和客户端方面?我知道我需要一个运行消息传递框架的服务器(如 Jabberd 2)。设置和运行会有多难?另外,将客户端程序连接到此服务的最佳方法是什么?我将如何开始将消息从一个客户端通过服务器推送到另一个客户端?
performance - 优先考虑 Erlang 节点
假设我有一个由 n 个Erlang节点组成的集群,其中一些可能在我的 LAN 上,而另一些可能使用 WAN(即通过 Internet)连接,有什么合适的机制来满足 a) 不同的带宽可用性/行为(例如,引起的延迟)和b)具有不同计算能力的节点(甚至是内存限制)?
换句话说,我如何优先考虑具有大量计算能力的本地节点,而不是那些具有高延迟并且可能不太强大的节点,或者我如何在理想情况下优先考虑具有高传输延迟的高性能远程节点来专门执行这些进程相对巨大的计算/传输(即每条消息,每时间单位完成的工作)比率?
我主要考虑通过向集群中的每个节点发送一个基准过程以在初始化期间运行来对它们进行基本基准测试,以便可以计算消息传递所涉及的延迟以及整体计算速度(即使用一个节点-特定的计时器来确定节点终止任何任务的速度)。
可能,类似的事情必须重复进行,一方面是为了获得代表性数据(即平均数据),另一方面它甚至可能在运行时有用,以便能够动态调整改变运行时条件。
(在同样的意义上,人们可能希望优先考虑本地运行的节点而不是其他机器上运行的节点)
这意味着有望优化内部作业调度,以便特定节点处理特定作业。
c++ - 发送一系列UDP数据报的“正确”方式?
我的印象是 UDP 的不稳定性是物理层的属性,但似乎不是:
我正在尝试通过 UDP 发送消息,该消息分为一系列数据包。消息识别和重新排序是隐式完成的。
我在同一台计算机上运行的两个应用程序上测试了这种方法,并希望它能够顺利运行。然而,即使数据传输完全是在同一台机器上的两个程序之间进行的,也存在丢包现象,而且非常频繁。损失似乎也很随机:有时整个信息都通过了,有时没有。
现在,即使在同一台机器上也会发生损失,这让我想知道我做得对吗?
最初,我是单次异步发送消息的所有片段,而不是等待一个片段完成后再发送下一个片段。
然后,我尝试从前一个消息的完成例程中发送下一个消息。这确实提高了丢包率,但并没有完全阻止它。
如果我在两个部分之间添加一个暂停 (Sleep(...)),它可以 100% 工作。
编辑: 正如答案所建议的那样:数据包发送得太快了,操作系统做了最小的缓冲。这是合乎逻辑的。
那么,如果我想阻止向系统添加确认和重新传输(我可以只使用 TCP),我应该怎么做?在不将数据速率降低到可能更高的水平的情况下,提高丢包率的最佳方法是什么?
编辑2: 我想到问题可能不完全是缓冲区溢出,而不是缓冲区不可用。我正在使用异步 WSARecvFrom 来接收,据我所知,它需要一个缓冲区,覆盖默认的操作系统缓冲区。当接收到数据报时,将其送入缓冲区,无论缓冲区是否已满,都会调用完成例程。
此时,根本没有缓冲区来处理传入的数据,直到从完成例程中重新调用 WSARecvFrom。
问题是是否有办法创建某种缓冲池,以便在处理不同的缓冲区时缓冲数据?