中间件集群协议msgpack
中间件集群协议msgpack
/// <author>cxg 2020-8-5</author>
/// 集群协议
/// broker:代理服务器
unit groupProtocol;
interface
uses
SysUtils, MsgPack
,classes
;
const //命令字
ConnMiddleWare = 2;
ConnMiddleWareResp = 52;
MiddleHeartBeat = 5;
MiddleHeartBeatResp = 55;
/// <summary>
/// 向broker申请连中间件
/// </summary>
/// <returns></returns>
function connMiddle: TStream;
/// <summary>
/// broket返回可用中间件的ip和port
/// </summary>
/// <param name="status"></param>
/// <param name="ip"></param>
/// <param name="port"></param>
/// <returns></returns>
function connMiddleResp(const status: Boolean; const ip: string; const port: Integer): TStream;
/// <summary>
/// 中间件发送心跳给broker
/// </summary>
/// <param name="ip"></param>
/// <param name="port"></param>
/// <returns></returns>
function middleHeart(const ip: string; const port: Integer): TStream;
/// <summary>
/// broker返回中间件心跳应答
/// </summary>
/// <param name="status"></param>
/// <returns></returns>
function middleHeartResp: TStream;
implementation
function middleHeartResp: TStream;
begin
var p: TMsgPack := TMsgPack.Create;
Result := TMemoryStream.Create;
p.Force('cmd').AsInteger := MiddleHeartBeatResp;
p.EncodeToStream(Result);
p.Free;
end;
function middleHeart(const ip: string; const port: Integer): TStream;
begin
var p: TMsgPack := TMsgPack.Create;
Result := TMemoryStream.Create;
p.Force('cmd').AsInteger := MiddleHeartBeat;
p.Force('ip').AsString := ip;
p.Force('port').AsInteger := port;
p.EncodeToStream(Result);
p.Free;
end;
function connMiddleResp(const status: Boolean; const ip: string; const port: Integer): TStream;
begin
var p: TMsgPack := TMsgPack.Create;
Result := TMemoryStream.Create;
p.Force('cmd').AsInteger := ConnMiddleWareResp;
p.Force('status').AsBoolean := status;
p.Force('ip').AsString := ip;
p.Force('port').AsInteger := port;
p.EncodeToStream(Result);
p.Free;
end;
function connMiddle: TStream;
begin
var p: TMsgPack := TMsgPack.Create;
Result := TMemoryStream.Create;
p.Force('cmd').AsInteger := ConnMiddleWare;
p.EncodeToStream(Result);
p.Free;
end;
end.
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/13440240.html

浙公网安备 33010602011771号