首页 > 其他 > 详细

中间件集群协议msgpack

时间:2020-08-05 16:43:13      阅读:91      评论:0      收藏:0      [点我收藏+]

中间件集群协议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.

  

中间件集群协议msgpack

原文:https://www.cnblogs.com/hnxxcxg/p/13440240.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!