继续普遍存在question
我有gen_server:
start(UserName) ->
case gen_server:start({global, UserName}, player, [], []) of
{ok, _} ->
io:format("Player: " ++ UserName ++ " started");
{error, Error} ->
Error
end
...
如何正确地向此gen_server发送消息。例如:在我做的另一个文件中:
gen_server:cast(test, message).
在我的gen_server文件中,我有:
handle_cast(message, State) ->
io:format("Message receiving \r\n"),
{noreply, State};
我用测试名称启动gen_server:
服务器:启动(测试)。 测试开始了
当我调用gen_server:cast(test, message).
时,shell中没有任何输出。我怎样才能检查handle_cast是否呼叫?
谢谢。
答案 0 :(得分:3)
而不是
gen_server:cast(test, message).
写
gen_server:cast({global, test}, message).
如果您将名称注册为{global,name},则必须将其命名为{global,name}
如果你的处理程序被调用,它将在shell中打印“Message receiving \ r \ n”。你用io:format call。