エリクシルでソケットを多重化する方法は?私はコアバンキングに接続する必要がありますが、ただ1つのtcp接続しか受け入れず、私のアプリケーションは多くの同時接続を受けました。助言がありますか?エリクシールで多重化されたソケット
答えて
私はGenServerでソケット処理全体を包み込み、ゲートウェイとして機能し、一度に1つのメッセージしか処理しません。例:
APIクライアントに多くのコマンドを送信できますが、一度に1つのメッセージしか処理しません。たとえば、同時に10個のメッセージを送信した場合、これらのメッセージはすべて1つのTCP接続を使用して順次送信されます。
Client.start_link
tasks = for x <- 1..10 do
Task.async fn ->
IO.puts Client.command("Hello world #{x}!")
end
end
for task <- tasks do
Task.await(task)
end
あなたはsocat
を持つ単純なエコーサーバを作成することにより、ローカルでこれをテストすることができます
socat -v tcp-l:9999,reuseaddr,fork exec:cat
"ソケットごとに1つのプロセスをスピンアップします。"しかし、あなたはそれよりもはるかに良いと言った:-P –
それは素晴らしい答えですが、あなたの例によると、10の要求を送信する場合、次々に送信する必要が同じであり、必ずしも同じ順序ではなく、つまり、3つの糊付けされた回答を受け取ることができます。最初の2バイトのメッセージをセグメント化する必要があります。これは応答の長さIを示します。 –
これで、ソケットから同時に読み取り/書き込みできるようにしたいのですか? TCPはこれを設計上許容しているので、一般的には問題ありません。リクエストとレスポンスはどのように一致していますか?応答が順序どおりでない場合は、一致させる方法が必要です。これらの詳細がなければ、良い答えを与えるのは難しいです。 –
- 1. Androidで多重化されたホットスポット
- 2. 多重化コールバック
- 3. どうやってnginxが一つのソケットを多重化するのか
- 4. java nioクライアント側多重化
- 5. エリクシール:サブクエリまたはサイドローディングと正規化されたjson出力を表示
- 6. パラメータ化された多層スイート
- 7. 多機能ソケットjava、ソケット対NIOソケット
- 8. エリクシールのパイプオペレーターで渡されたパラメーターにアクセスするには?
- 9. Pythonポート転送/多重化サーバ
- 10. Javaの未来を多重化する
- 11. Azure IoTハブAMQP通信多重化
- 12. C#二重化されたツリーの逆シリアル化の問題
- 13. Androidの安全な/暗号化されたソケット
- 14. 積み重ねられたグループ化された棒グラフ
- 15. Bokeh - 積み重ねられたグループ化されたチャート
- 16. Pythonのスーパー()ネストされた多重継承
- 17. EOFを使用した非ブロッキングソケットIOの多重化
- 18. OOAD多重度またはカーディナリティの明確化
- 19. VP9でエンコードされたデータを.webmに多重化するときのFPSが正しくない
- 20. パンダで一般化された系列分割(1対多マッピング)
- 21. エリクシール
- 22. エリクシール/フェニックス別のモジュールからブロードキャストされたエンドポイント
- 23. Microsoft Chartの積み重ねられた列が非積み重ねでグループ化されました
- 24. JPA - 継承されたエンティティが永続化に渡されました多対多
- 25. RICEのMICEで多重代入されたデータの後の不一致テーブル
- 26. clojureで多重化サーバを作成していますか?
- 27. sftpとの多重化でcURLを使用する方法
- 28. プロセス内でCライブラリを分離して多重化する
- 29. omnet ++のMAC層でFDM(周波数分割多重化)
- 30. goでチャネル出力を多重化する方法
スピンソケットあたり1つのプロセスアップ。 –