zoukankan      html  css  js  c++  java
  • 中间件集群协议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.
    

      

  • 相关阅读:
    Windows 7 语音识别和屏幕录像
    用户体验研究乱谈后台导航
    安装VS2010
    lucene.net搜索索引详解
    网站秒杀那点破事
    初次给鼠标手术
    网站页面回车和鼠标焦点
    利用C语言的部分初始化特性进行字符串的全部初始化。
    QoS的各个方面
    指针和数组错用的问题汇总
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/13440240.html
Copyright © 2011-2022 走看看