问题标签 [pgm-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.

0 投票
2 回答
687 浏览

c# - Receiving MessageQueue msgs without reading them from the receiving Queue?

I am using the System.Messaging.MessageQueue to send and receive multicast System.Messaging.Message’s on my LAN – this works fine.

However, I have a requirement to receive the msgs without using a message queue.

As the MessageQueue uses the PGM protocol (113) to send messages I am trying to build a type that listens on PGM (protocol 113) using a socket (e.g. new Socket(AddressFamily.InterNetwork, SocketType.Rdm, (ProtocolType)113);). The type is receiving message data but it is in a text format (with a soap formatter section -see example this example on msdn http://msdn.microsoft.com/en-us/library/cc219170.aspx)

I obviously want binary data so i can cast it into a System.Messaging.Message and get at the real data.

Any ideas on how i can do this are greatly appreciated .

0 投票
2 回答
743 浏览

geolocation - 将多播传送到几个不同的地理位置

我需要在应用程序中使用一个基于逻辑 PGM 的多播地址,同时启用这样的应用程序“无缝”运行在几个不同的地理位置(例如美国/欧洲/澳大利亚)。

应用程序的吞吐量很大(每天有几百万条商业消息)和延迟要求很高,需要大量小但非常频繁地发送消息。由于某些外部延迟限制,Classic Atom pub 无法在此处工作。

我想出了几个连接这些数据中心的选项,但找不到最好的一个。我考虑过的选项是:1)通过VPN转发多播消息(VPN可以处理这么大的负载)。2) 将所有多播消息转换为“包装消息”并通过 AMQP 转发。3) 编写专门的内部网关,通过 TCP 将多播消息传送到其他两个位置。4)任何其他解决方案

我更喜欢选项 1,因为它不需要开发人员编写额外的代码。但恐怕它不会是可靠的连接。

申请此类连接是否有任何规则?

对于上述限制,关于地理配置的最佳网络配置是什么。

0 投票
1 回答
540 浏览

c# - 非管理员帐户的 Windows PGM 套接字访问错误

我正在尝试使用 PGM 套接字在 Windows 上发送数据。我可以使用非管理员帐户从 PGM 套接字很好地监听和接收数据,但是当我尝试创建一个套接字来发送数据时,我在这一步遇到了异常:

socket.Bind(new IPEndPoint(IPAddress.Any, 0));

例外是:

试图以访问权限禁止的方式访问套接字

请注意,如果我在管理员帐户下运行相同的代码,它可以正常工作。有没有办法在不运行管理员帐户的情况下创建发件人 PGM 套接字?

0 投票
1 回答
715 浏览

c# - 在非管理员帐户上使用多个 PGM 侦听套接字获取访问异常

以下代码适用于管理员帐户,但对于非管理员帐户,它会打印两次成功然后抛出 System.Net.Sockets.SocketException (0x80004005):尝试以访问权限禁止的方式访问套接字。任何人都知道这是为什么?

仅供参考,这里的实际用例是使用相同 PGM 地址和套接字的多个应用程序。推送(通过多播)实时更新。这个概念证明,这不是由我们自己的库引起的。

}

0 投票
2 回答
3464 浏览

node.js - zeromq epgm 发布/订阅不工作

我正在使用 node.js 示例。我已经在我的 ubuntu 12.10 机器上安装了 openpgm 和 zeromq 3.2。这是代码:

和另一个应用程序:

var zmq = require('zmq') ,端口 = 'epgm://eth0;239.192.1.1:5555';

var socket = zmq.socket('sub');

socket.identity = '订阅者' + process.pid;

socket.connect(端口);

socket.subscribe('AAPL'); socket.subscribe('GOOG');

console.log('已连接!');

socket.on('message', function(data) { console.log(socket.identity + ': 接收到的数据' + data.toString()); });

我不确定我是否使用了正确的多播寻址。我已经在同一台机器上尝试了这些应用程序,也在网络中的另一台机器上尝试过。我很确定我没有考虑过那部分,但我似乎在任何地方都找不到任何好的解释。但我希望这无论如何都能在同一台机器上工作。有任何想法吗?

PS:忘记解释到底发生了什么:基本上push程序只是推送所有消息而没有任何错误,而pull程序启动但没有收到任何消息。

0 投票
1 回答
1374 浏览

tcp - 我可以将 ZeroMQ 与基于软件的负载均衡器 HAProxy 一起使用吗?

HAProxy 是一个基于软件的负载均衡器,支持 http 和 tcp 分发。如果我使用启用了实用多播 (pgm) 的 ZeroMQ,使用 HAProxy 作为 zmq 对等点之间的中介会与 pgm 冲突,还是应该使用基于硬件的负载均衡器,如 F5?

0 投票
1 回答
492 浏览

windows - PGM winsock2 创建套接字失败

我刚刚在 Windows 套接字中发现了 PGM(实用通用多播)。我在 msdn 上阅读了如何配置发送和接收套接字,但它不起作用。

这是到目前为止的代码:

我尝试创建套接字时收到错误代码 10044(不支持套接字类型)。如何启用 PGM 的使用?

我目前正在使用安装了 MSMQ 的 Windows 7。

编辑 这是我阅读的msdn网站。

0 投票
1 回答
482 浏览

ubuntu-12.04 - 在 Ubuntu 12.04 上使用 openpgm

我在使用 Openpgm 库时遇到了问题,如果有人能帮助我解决这个问题,我将不胜感激。

我想在 Ubuntu 12.04 上使用 Openpgm。根据此链接:“ https://code.google.com/p/openpgm/wiki/OpenPgm5CReferenceBuildLibrary ” Openpgm 在 Ubuntu 8.04 到 10.10 上进行了测试。

我下载了最新版本的 Openpgm(5.2.122) 并用“scons”编译它没有错误。根据链接,我应该在路径“*./ref/debug/examples/”中看到一个名为“pgmrecv”和“pgmsend”的编译示例,但没有这样的示例,而是有“purinrecv”和“purinsend”。我首先像这样运行接收器:“./purinrecv -lp 3065”,然后像这样运行发送器:“./purinsend -lp 3065 please work”,两者都没有错误消息,但接收器没有收到任何东西。任何帮助,将不胜感激!

0 投票
1 回答
192 浏览

networking - PGM - 数据包顺序和可靠性

我正在编写一个需要将图片从多个发送者发送到多个接收者的应用程序。这已经通过 TCP 实现,但我希望能够获得更好的速度,所以我正在研究多播。UDP太不可靠了。PGM 看起来像是解决方案,但我仍然不清楚它的一些细节:

  1. 在某些地方,它声明:“PGM 不支持确认传递,也不保证对来自多个发送者的数据包进行排序。” 这是否意味着以下内容:发送方 A 发送 5 个数据包,发送方 B 发送 - 3。接收方接收到假设 A 的前 3 个数据包以正确的发送顺序发送,然后例如来自 B 的前 2 个数据包以正确的发送顺序发送然后是A的最后2个。所以最后我有A1,A2,A3,B1,B2,A4,A5。或者这是否意味着即使来自给定来源的数据包也不会按顺序排列,例如在给定的情况下:A2、A5、B2、A4 ......?我希望这个问题不会太令人困惑。
  2. “PGM 是一种可靠且可扩展的多播协议,它使接收者能够检测丢失、请求重新传输丢失的数据或通知应用程序丢失不可恢复的情况。” 我的问题是关于不可恢复损失的通知。我无法理解这究竟意味着什么。它会为应用程序提供足够的信息,以便它可以尝试重新发送数据包吗?
0 投票
0 回答
204 浏览

ios - zeromq 在 iOS 上使用 pgm/在 iOS 上使用 OpenPGM

有谁知道如何设置 ZeroMQ 以与 iOS 的 OpenPGM 一起使用?或者有人在 Xcode 项目中使用过 openpgm 库,因为这个库似乎是问题的根源。没有 pgm 支持的 ZeroMQ 在 iOS 上运行良好,但是一旦我尝试将它与 pgm Xcode 一起使用,Xcode 就会开始产生错误——一旦我修复了其中的一些错误,就会出现新的错误。是否有人成功地做到了这一点,或者有人知道不能确定地做到这一点。我正在寻找有关如何在支持 pgm 的 Xcode 项目中构建 zmq 以适用于 iOS 的说明。