3 つの状態を持つ Web アプリケーションがあります。
- ダイヤルイン — (基本的に、以下のどれも)
- VOIP — Freeswitch インスタンスに接続
- リッスン — このオプションは、FMS インスタンス (#2 とは異なるサーバー) への通常の接続を介して行われます。
初期状態は、ユーザーが最初にアプリケーションに入ったときにポップアップを介して選択されます。それ以降、これらはすべて ComboBox によって制御されます。変更されると、アプリケーションは開いているすべての接続をチェックしてから閉じます。次に、適切な新しい接続を開きます。
問題は、これによりアプリケーションが 10 ~ 20 秒間フリーズすることもあれば、クラッシュすることもあり、その理由がわかりません。trace
VOIP 変更の前に発生するはずの s は、フリーズ後にのみ表示されます (タイムスタンプに遅延が発生します) が、変更関数の呼び出しをコメントアウトすると、期待どおりの順序で表示されます。
何が起こっている?このアーキテクチャは単に維持できないのでしょうか? 物事を行うためのより良い方法はありますか?