在函数 TSslWebSocketCli.TriggerBeforeHeaderSend 的定义中, B 定义成了 String,需要改为 AnsiString,同样内部循环赋值也需要改下:
procedure TSslWebSocketCli.TriggerBeforeHeaderSend(const Method : String; Headers : TStrings);
var
i: Integer;
s: String;
FoundGET: Boolean;
B: AnsiString;//String->AnsiString
begin
...
Randomize;
SetLength(B, 16);
for i := 1 to Length(B) do
B[i] := AnsiChar(Random(256));//Char->AnsiChar
ClientKey := Base64Encode(B);
...
实际上用 TBytes 更好一些。
【后续】发邮件给官方,官方 SVN 已经修改为 TBytes,查看