作为一个新手,使用 gen_server 编写一个玩具匹配(交易)引擎。
一旦发生交易/匹配,需要通知双方客户。
文档说:
reply(Client, Reply) -> Result
类型:
Client - see below Reply = term() Result = term()
当无法在 的返回值中定义回复时,gen_server 可以使用此函数显式向调用
call/2,3
或的客户端发送回复。multi_call/2,3,4
Module:handle_call/3
Client 必须是提供给回调函数的 From 参数。Reply 是一个任意项,将作为
call/2,3
ormulti_call/2,3,4
。返回值 Result 没有进一步定义,应始终被忽略。
鉴于上述情况,如何向其他客户端发送通知。
行动顺序示例
C1 -> Place order IBM,BUY,100,10.55
Server -> Ack C1 for order
C2 -> Place order IBM,SELL,100,10.55
Server -> Ack C2 for order
-> Trade notification to C2
-> Trade notification to C1 %% Can I use gen_server:reply()
%% If yes - How ?