現在、ソケットを使用してデバイス間でデータを渡す方法が必要なため、サーバー側で Python スクリプトを使用して ZeroMQ を使用し、すべてが機能しているようです。現在、私たちのプロトコル アドレスは ですがepgm://224.0.0.1:28650
、Python スクリプトと通信する必要があるため、このSwift ライブラリを使用することにしました。現在、このリポジトリのライブラリを直接使用しており、パッチ レベル .2 の ZeroMQ ライブラリ バージョン 4.2 を使用しているようです。次に、この関数を使用して、ライブラリに .pgm プロトコルがあるかどうかを確認します。このプロトコルは、アプリがサポートしていないと報告しています。
ライブラリには特定のプロトコルをサポートしているかどうかを確認するこの機能がありますが、ライブラリで pgm プロトコルをサポートする方法については、Google で何も見つかりません。
元の迅速なライブラリを調べた後、 zmq.hを見つけることができました。これは、swift ライブラリが ZMQ ライブラリとして使用しているものであることがわかります。そのため、これを発見した後、PyZMQ の問題を修正するために使用した「--with-pgm」ビルド オプションを使用してlibzmqを再コンパイルしようとしました。しかし、私はこれであまり運がなかったし、これが私がどのように進めるべきかさえ確信が持てません. 私は現在途方に暮れており、どんな助けもいただければ幸いです。ありがとう。
現在使用している 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