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 秒)。 |
客户端已连接且 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');