クライアントがサーバーへの接続を構成した後、新しい接続を開くには3つの異なる オプションがあります。
新しい接続を開く最も簡単な方法は、Active プロパティを true に設定することです。これにより、コンポーネントの設定を使用してサーバーへの接続が試みられます。
Active プロパティを false に設定すると、アクティブな場合は接続を閉じます。
このメソッドは呼び出し元と同じスレッドで実行されます。メインスレッドから呼び出すと、メソッドはアプリケーションのメインスレッドで実行されます。
接続を開く
oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Active := true;
Active = true を呼び出した場合、クライアントがまだ接続中の可能性があるため、まだサーバーへデータを送信できません。 まずOnConnectイベントが発生するまで待つ必要があり、その後でサーバーへ メッセージの送信を開始できます。
接続を閉じる
oClient.Active := false;
Active = false を呼び出した場合、このコードの直後に接続がすでに閉じられているとは 限りません。そのため、OnDisconnectイベントが発生するまで 待つ必要があります。
サーバーに接続/切断するために Start() または Stop() を呼び出すと、呼び出しはセカンダリスレッドで実行されるため、呼び出されたスレッドをブロックしません。サーバーに接続して以降のコードを続けて実行したい場合はこのメソッドを使用してください。
接続を開く
oClient := TsgcWebSocketClient.Create(nil);
...
oClient.Start();
Start() を呼び出しても、クライアントがまだ接続中の可能性があるため、サーバーにデータを送信することはまだできません。まず OnConnect イベントが発生するまで待機してから、サーバーへのメッセージ送信を開始してください。
接続を閉じる
oClient.Stop();
Stop() を呼び出した後、このコードの直後に接続がすでに閉じられているとは限りません。OnDisconnect イベントが発火するまで待機する必要があります。
Connect() または Disconnect() を呼び出してサーバーへの接続を開く/閉じる場合、呼び出しは呼び出されたスレッドと同じスレッドで実行されますが、プロセスが完了するまで待機します。プロセスが完了するまでの最大待機時間を定義するために Timeout を設定する必要があります(デフォルトは 10 秒)。
使用例: サーバーに接続して最大 5 秒間待機する
oClient := TsgcWebSocketClient.Create(nil);
...
if oClient.Connect(5000) then
oClient.WriteData('Hello from client')
else
Error();
Connect() メソッドが成功した結果を返した場合、 接続が生きているため、すでにサーバーにメッセージを送信できます。
例: サーバーから切断して最大 10 秒間待機します
if oClient.Disconnect(10000) then
ShowMessage('Disconnected')
else
ShowMessage('Not Disconnected');
Disconnect()メソッドが成功した結果を返した場合、それは 接続が既に閉じられていることを意味します。
OnBeforeConnect イベントを使用して、クライアントがサーバーへの接続を試みる前にサーバー接続プロパティをカスタマイズできます。