IdHTTPServer完成websocket服务端编写
来源:互联网 发布:全站仪数据导出 编辑:程序博客网 时间:2024/05/23 01:58
利用delphi的idhttpserver控件来做websocket的服务端。主要是握手过程,后面的通讯还未实现。实现了再发代码。握手代码如下。
procedure TfWebSocket.IdHTTPServer1CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);var svk,sValue:string; FHash: TIdHashSHA1; strmRequest: TMemoryStream;begin FHash := TIdHashSHA1.Create; strmRequest := TMemoryStream.Create; strmRequest.Position := 0; svk:=ARequestInfo.RawHeaders.Values['Sec-WebSocket-Key']; Memo1.Lines.Add('Get:'+svk); AResponseInfo.ResponseNo := 101; AResponseInfo.ResponseText := 'Switching Protocols'; AResponseInfo.CloseConnection := False; //Connection: Upgrade AResponseInfo.Connection := 'Upgrade'; //Upgrade: websocket AResponseInfo.CustomHeaders.Values['Upgrade'] := 'websocket'; //Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= sValue := svk + //... "minus any leading and trailing whitespace" '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; //special GUID sValue := TIdEncoderMIME.EncodeBytes( //Base64 FHash.HashString(sValue) ); //SHA1 //sValue := string(FHash.CalcString(AnsiString(sValue))); //SHA1 + Base64 AResponseInfo.CustomHeaders.Values['Sec-WebSocket-Accept'] := sValue; //send same protocol back? AResponseInfo.WriteHeader;end;其中引用单元uses
IdCoderMIME,IdHashSHA;。采用xe7编译。
0 0
- IdHTTPServer完成websocket服务端编写
- java编写WebSocket服务端
- java编写的Websocket服务端
- 服务端用idhttpserver来接收xml数据包
- websocket实现QQ聊天一之一(服务端编写)
- WebSocket 服务端实现
- websocket服务端请求标准
- websocket服务端PHP代码
- C# 实现WebSocket服务端
- Java WebSocket服务端实现
- 写一个Tomcat+Okhttp实现的聊天websocket聊天框架(一)-- 完成客户端和服务端的通信
- idhttpserver用法
- netty的websocket服务端开发
- Websocket服务端实现的方法
- WebSocket 协议及服务端实现
- jee原生webSocket服务端搭建
- C# 实现WebSocket服务端实例
- 完成端口模型服务端
- 历届试题 矩阵翻硬币 蓝桥杯 大数开方 大数相乘
- newInstance()和new ()的区别
- RCU讲解
- A Simple Problem with Integers(线段树之区间点的成段更新)
- linux程序设计目录扫描实验问题
- IdHTTPServer完成websocket服务端编写
- 13.2.1 访问世界银行的数据
- 正则表达式(候选项)
- Cas(02)——部署Cas Server
- gcc工具的切换
- 第四讲项目1—求两数之和(界面友好)
- Deepin挂载内存盘
- 欢迎使用CSDN-markdown编辑器
- C语言的位运算的优势