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;