TsgcWebSocketClient_WinHTTP
TsgcWebSocketClient实现了客户端VCL WebSocket组件,可以连接到WebSocket服务器,它基于WinHTTP API,需要Windows 8或更高版本。按照以下步骤配置此组件:
将TsgcWebSocketClient_WinHTTP组件拖拽到FROM窗口上。
设置主机和端口(默认值为80)以连接到可用的WebSocket服务器。您可以设置URL属性,主机、端口、参数…将从URL更新。例子:wss://127.0.0.1:8080/ws/将导致:
oClient := TsgcWebSocketClient_WinHTTP.Create(nil); oClient.Host := '127.0.0.1'; oClient.Port := 80; oClient.TLS := True; oClient.Options.Parameters := '/ws/';
3.您可以选择是否要TLS(安全连接),默认情况下为“未激活”。
4.以下事件可用于自定义websocket客户端流:
-OnConnect:当建立WebSocket连接时,将激发此事件
-OnDisconnect:当WebSocket连接断开时,将激发此事件
-OnError:每次出现WebSocket错误(如错误的握手)时,都会触发此事件
-OnMessage:每次服务器发送文本消息时,都会触发此事件
-OnBinary:每次服务器发送二进制消息时,都会触发此事件
-OnFragmented:当从消息中接收片段时(仅当Options.FragmentedMessages=frgAll或frgOnlyFragmented时激发)。
-OnException:每次发生异常时,都会触发此事件。
-OnBeforeConnect:在客户端尝试连接到服务器之前,将调用此事件。
-OnBeforeWatchDog:如果启用了WatchDog,则允许将自定义WatchDod设置Handled参数设置为True(这意味着不会尝试连接到服务器)。您也可以在尝试重新连接之前更改“服务器连接”属性,例如:如果第一次失败,则连接到备用服务器。
8.创建过程并设置属性Active=True。
方法
WriteData:向WebSocket服务器发送消息。可能是字符串或TStream。
Start:使用辅助线程连接到服务器,这可以防止应用程序在尝试连接时冻结。
Stop:使用辅助线程断开与服务器的连接,这可以防止应用程序在尝试断开连接时冻结。
Connect:尝试连接到服务器并等待连接成功或出现错误。
Disconnect:尝试断开与服务器的连接,并等待断开成功或出现错误。
属性
Authentication:如果启用,WebSocket连接将尝试通过用户名和密码进行身份验证。
实现1种类型的WebSocket身份验证
-Basic:客户端打开WebSocket连接,在标头内传递用户名和密码。
Asynchronous:默认情况下,请求是同步的,当您发出新请求时,应用程序的执行将停止,当您收到响应时,将继续执行。如果不希望该请求停止应用程序,请启用此属性。
Host:服务器的IP或DNS名称。
HeartBeat:如果启用,尝试保持WebSocket连接的活动状态,每x秒发送一次ping。
-Interval:每次ping之间的秒数。
-Timeout:超时时间。
ReadTimeout:读取消息的最长时间(毫秒)。
Port:用于连接到主机的端口。
NotifyEvents:定义通知websocket事件的模式。
-neAsynchronous:这是默认模式,在异步模式下通知线程事件,将事件添加到与主线程异步同步的队列中。
-neSynchronous:如果选择此模式,则在同步模式下通知线程事件,需要与主线程同步以通知这些事件。
-neNoSync:与主线程没有同步,如果需要访问非线程安全的控件,则需要实现自己的同步方法。
Options:允许自定义握手时发送的标头。
-Parameters:定义GET上使用的参数。
-Origin:自定义连接原点。
-FragmentedMessages:允许处理碎片消息
--frgOnlyBuffer:消息被缓冲,直到接收到所有数据,它引发OnBinary或OnMessage事件(默认选项)
--frgOnlyFragmented:每次接收到新片段时,它都会引发OnFragmented事件。
--frgAll:每次接收到新片段时,它都会引发OnFragmented Event,其中包含从第一个数据包接收到的所有数据。当接收到所有数据时,它会引发OnBinary或OnMessage事件。
Protocol:如果存在,则显示当前使用的协议
Proxy:在这里,您可以定义是否要通过HTTP代理服务器进行连接。
WatchDog:如果启用,当检测到意外断开连接时,将尝试自动重新连接到服务器。
-Interval:X秒后重新连接。
-Attempts:最大重新连接次数,如果为零,则无限制。
TLS:启用安全连接。
目录 返回
首页
- 评论列表