永发信息网

WebSocket ,delphi 求高手指点迷津!

答案:2  悬赏:70  手机版
解决时间 2021-01-28 17:11
我用的是 delphi7 ,用HTML文件做为客户端,delphi7 的 INDY10版本的IdTCPServer1控件。

连接后,DELPHI程序IdTCPServer1Execute 事件收到网页发来的信息:,但是一直无法握手成功

GET / HT*P/1.1
Upgrade: websocket
Connection: Upgrade
Host: localhost:8080
Origin: null
Sec-WebSocket-Key: /mbLym4mEC4Lbx5al1ELVg==
Sec-WebSocket-Version: 13

=======================
然后,我在DELPHI服务器用下面的代码来发送

if (copy(scommand,1,17)='Sec-WebSocket-Key') then begin ////读取客户信息,SHA1等
ssKey:=copy(scommand,19,length(scommand))+'258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
jjstr:='';
SHA1Init(SHA1Context); //开始SHA1
SHA1Update(SHA1Context, PChar(ssKey), Length(ssKey));
SHA1Final(SHA1Context, SHA1Digest);
s2:=EncodeString(PChar(@SHA1Digest) );
jjstr:=s2;
end;
if copy(scommand,1,21)='Sec-WebSocket-Version' then begin //发送握手验证信息
Handshake:=true;
AContext.Connection.Socket.WriteLn('HT*P/1.1 101 Switching Protocols');
AContext.Connection.Socket.WriteLn('Upgrade: WebSocket');
AContext.Connection.Socket.WriteLn('Connection: Upgrade');

AContext.Connection.Socket.WriteLn('Sec-WebSocket-Accept: '+jjstr );
AContext.Connection.Socket.WriteLn('WebSocket-Origin: ht*p://127.0.0.1');
AContext.Connection.Socket.WriteLn('WebSocket-Location: ws://127.0.0.1:8080');
end;

我遇到的问题是,无法握手验证通过,好像不管我发送什么HTML那边都再没有信息返回,
网页和程序之间无法发送信息,实在解决不了,请大哥大姐指点一下,感激不尽!!

已自己解决,不用再回答了
最佳答案
请问你是怎么解决的?非常感谢你能帮小弟一把。邮件地址:weiqigz@163.com
全部回答
这个很高深啊,我也不会
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
C语言编译问题 静态链接
在神经-骨骼肌接头完成信息传递后,能消除接
富矿的意思是什么啊?知道的请说下!
转基因豆大豆的特征,怎么识别?
骑摩托车闯红灯被轿车撞伤,轿车逃逸,请问双
(2013上午)某施工单位一个有职工185人的三级
qq网名"口是心非"有什么样的
胰岛素内的圆球是什么东西
高符的意思是什么啊?知道的请说下!
6.82X1.25X8=多少
《邹忌讽齐王纳谏》和《孙叔敖为楚令尹》讲的
有个超色的男朋友是一种什么体验图片
2015的宝马525li烧机油吗?
濮阳市新习乡有线电视安装电话是多少?我家想
水孔的意思是什么啊?知道的请说下!
推荐资讯
在厂里面做蛋糕的那种工作怎么样?工资实习期
老婆大人休闲食品怎么样?
我国还存在哪些影响教育公平的因素
有为的意思是什么啊?知道的请说下!
广发银行到底怎么回事,申请信用卡已经填表20
快乐星球老顽童爷爷真的去世了吗
建德市大同成人文化技术学校(东南门)在什么地
右图为反映某生理过程或现象不正确的是CA. 若
在银行贷款万年还清用于购房那么利息是怎样算
婚前贷款买房结婚后算共有吗在线等急急急
组装游戏电脑在实体店买好还是在网上配自己装
作为合伙人的自然人有下列(  )情形时,其
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?