Zmq使用记录(二)

1。广播模式( pub - sub),

使用该模式服务端为订阅消息的客户端主动推送消息。这个好比事件或函数回调,客户端连接上服务端,一旦有关心的事情,就可以收到通知,还可以设置消息的过滤,只接收关心的,或者全部接收。

//pub - sub 模式

//服务端
server = class
private
  mqContext: TZMQContext;
  mqSocket: TZMQSocket;
end;



//创建
procedure server.create;
begin
  tick:= gettickcount;
  mqContext:= TZMQContext.Create;
  mqSocket:= mqContext.Socket(stPub);
  mqSocket.bind('tcp://*:5555');
end;


//广播
procedure server.notice;
var
  msg1: string;
begin
  while true do  
  beign
    msg1:= formatdatetime(now);
    mqSocket.send(msg1);
    sleep(1);
  end;
end;
//客户端
client = class
private
  mqContext: TZMQContext;
  mqSocket: TZMQSocket;
end;


//创建
procedure client.create;
begin
  mqContext:= TZMQContext.create;
  mqSocket:= mqContext.socket(stSub);
  mqSocket.subscribe(''); //可以设置过滤,或接收全部
  mqSocket.connect('tcp://localhost:5555');
end;


//接收
procedure client.recv;
var
  msg1: string;
begin
  if mqSocket.recv(msg1) > 0 then  
    mmo1.lines.add(msg1);
end;

猜你喜欢

转载自blog.csdn.net/ltk80/article/details/81381096
zmq
今日推荐