TsgcWebSocketClient › Methods › Connect
WebSocket 接続を同期的に開き、ハンドシェイクが完了するかタイムアウトが経過するまで呼び出し元をブロックします。
function Connect(const aTimeout: Integer = 10000): Boolean; overload;
function Connect(out AError: string; const aTimeout: Integer = 10000): Boolean; overload;
| 名前 | タイプ | 説明 |
|---|---|---|
AError | out string | メソッドが失敗した場合は接続エラーの説明を返し、成功した場合は空の文字列を返します。同じテキストは後から LastError でも参照できます。 |
aTimeout | const Integer | 接続がアクティブになるまで待機する最大時間(ミリ秒)。デフォルトは 10000(10秒)。 |
True: クライアントが接続されてタイムアウト内に WebSocket ハンドシェイクが完了した場合。それ以外の場合は False。(Boolean)
Connect は、Active := True を設定する操作のブロッキング版です。内部で Active を設定し、接続が確立されるかタイムアウトが経過するまで内部イベントで待機します。クライアントがすでに接続されている場合、このメソッドは直ちに True を返します。関数が True を返した場合、OnConnect を待たずに、すぐに WriteData を安全に呼び出すことができます。セカンダリスレッドから接続する非ブロッキング呼び出しが必要な場合は代わりに Start を使用し、future スタイルの非ブロッキング接続(Delphi 2010+)には ConnectTask を使用してください。
out AError パラメーターを持つオーバーロードは同一の動作をしますが、失敗した試行の理由を追加で返すため、接続が成功しなかった理由を知るためにイベントハンドラーは不要です。LastError は各試行の前にクリアされ、その後同じテキストを保持します。
oClient := TsgcWebSocketClient.Create(nil);
oClient.Host := '127.0.0.1';
oClient.Port := 80;
if oClient.Connect(5000) then
oClient.WriteData('Hello from client')
else
ShowMessage('Connection failed');