SwiftyZeroMQ为什么不支持epgm://和pgm://传输类?

问题描述

我们当前想要一种在带有套接字的设备之间传递数据的方法,因此我们在服务器端通过Python脚本使用了ZeroMQ,似乎一切正常。我们的协议地址当前为epgm://224.0.0.1:28650,但是,我们需要与python脚本进行通信,因此我们决定使用此Swift library。当前,我直接在此存储库中使用该库,并且似乎正在使用ZeroMQ库版本4.2和修补程序级别2。然后,使用this function,我正在检查库是否具有.pgm协议,我的应用程序报告该协议不支持该库。

尽管该库具有检查其是否支持某种协议的功能,但我无法在Google上找到有关如何使该库支持pgm协议的任何信息。

浏览原始的swift库之后,我能够找到zmq.h,据我所知,它是ZMQ库所使用的swift库。因此,发现这一点后,我尝试使用“ --with-pgm”构建选项重新编译libzmq,该选项用于解决pyzmq上的问题。但是,我对此并没有多大运气,甚至不确定这是我应该如何进行的。我目前不知所措,任何帮助将不胜感激。谢谢。

这是我们当前正在使用的Swift代码

import SwiftyZeroMQ5

class communicationClass{
   var context: SwiftyZeroMQ.Context?;
   var subscriber: SwiftyZeroMQ5.SwiftyZeroMQ.socket?;

   init(){
      do{
         context = try SwiftyZeroMQ.Context();
         subscriber = try context?.socket(.subscribe);
         try subscriber?.connect("epgm://224.0.0.1:28650");
      }
      catch{
         print("error - \(error)")
      }
   }
}

这是它输出错误error - Protocol not supported

解决方法

Q “为什么SwiftyZeroMQ不支持epgm://pgm://传输类?”

文档清晰无误:

按现状程序包确实声明了状态,它提供了 not 支持 epgm:// -截至2020-10的运输班。


下一步:

尝试使用pgm://-transport-class而不是epgm://,如果失败,请在程序包维护者的事件管理队列中提出问题,因为他们认为它应该起作用。 / p>

,

因此,由于缺乏EPGM和PGM的支持,我们决定将原始UDP与ZeroMQ的碟/无线电草稿API结合使用。这些API草案本来可以替代EPGM和PGM,但它们仍在开发中。这些API适用于我们的用例,但可能会因您的用例而异。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...