【问题标题】:How can I identify a remote actor?如何识别远程参与者?
【发布时间】:2010-11-06 16:55:03
【问题描述】:

我有一个远程参与者(客户端)正在向另一个远程参与者(服务器)注册,然后再取消注册(使用关闭挂钩)。然而,虽然服务器接受了注销,但实际的 sender 属性是一个不同的 Channel 对象;所以在我的服务器日志中我有:

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

我如何才能确定(在服务器端)这是最初向我注册的同一个客户端参与者?显然我可以为每个客户灌输自己的UUID,但我想知道是否有更简单的方法?

【问题讨论】:

    标签: scala actor remote-actors


    【解决方案1】:

    从对 scala 用户邮件列表的讨论来看,如果不使用其他类型的客户端标识符(如 UUID),这似乎是不可能立即实现的。如果您在注册对象中从客户端发送self 引用,您将收到ObjectNotSerializable 错误。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-05-26
        • 2013-09-04
        • 2011-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-14
        • 1970-01-01
        • 2012-11-09
        相关资源
        最近更新 更多