天天开心^_^

TsgcWebSocketClient_WinHTTP

19 12月
作者:popsky|分类:sgcWebSockets控件说明

TsgcWebSocketClient实现了客户端VCL WebSocket组件,可以连接到WebSocket服务器,它基于WinHTTP API,需要Windows 8或更高版本。按照以下步骤配置此组件:

  1. 将TsgcWebSocketClient_WinHTTP组件拖拽到FROM窗口上。

  2. 设置主机和端口(默认值为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:启用安全连接。


浏览33.7k 评论16569
返回
目录
返回
首页
TsgcWebSocketServer_HTTPAPI TsgcWebSocketLoadBalancerServer

发表评论

  • 评论列表