TsgcWebSocketClientMethods › Connect

Connect 方法

同步打开 WebSocket 连接,阻塞调用方直到握手完成或超时。

语法

function Connect(const aTimeout: Integer = 10000): Boolean; overload;
function Connect(out AError: string; const aTimeout: Integer = 10000): Boolean; overload;

参数

名称类型描述
AErrorout string当方法失败时返回连接错误的描述,成功时返回空字符串。相同的文本之后也可以在 LastError 中获取。
aTimeoutconst Integer等待连接变为活跃状态的最长时间(毫秒)。默认值为 10000(10 秒)。

返回值

客户端已连接且 WebSocket 握手在超时时间内完成时返回 True,否则返回 False。(Boolean

备注

Connect 是设置 Active := True 的阻塞式对应方法。它在内部设置 Active,然后在一个内部事件上等待,直到连接建立或超时到期。如果客户端已经连接,该方法会立即返回 True。当函数返回 True 时,可以立即安全地调用 WriteData,无需等待 OnConnect。如果需要从辅助线程连接的非阻塞调用,请改用 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');

返回方法