我如何确定一个远程的演员?(How can I identify a remote actor?)

2019-07-29 09:42发布

我有与另一远程演员(服务器)注册和再后来注销(具有关闭挂钩)的远程演员(客户端)。 然而,尽管服务器拾取撤销注册,实际sender属性是一个不同频道的对象 ; 所以在我的服务器日志,我有:

Registered new client [scala.actors.Channel@158e282]; supporting 1 clients
De-registered client [scala.actors.Channel@1caf0b6]; supporting 1 clients

如何确定(在服务器端),这是最初与我注册了相同的客户端的演员? 很显然,我可以灌输每个客户都有自己的UUID ,但我不知道是否有更简单的方法?

Answer 1:

从阶用户的邮件列表上的讨论,似乎这不是马上可以不使用一些替代类型的客户识别码(例如的UUID )。 如果发送的是self在您的注册对象从客户端的参考,你会得到一个ObjectNotSerializable错误。



Answer 2:

明确发件人添加到您的消息。 使用RemoteActor.select获得scala.actors.remote.Proxy。 使用它的toString方法来识别发送者。



文章来源: How can I identify a remote actor?