4

別のリモート アクター (サーバー) に登録し、後で (シャットダウン フックを使用して) 登録を解除するリモート アクター (クライアント) があります。ただし、サーバーは登録解除を取得しますが、実際のsenderプロパティは別の Channel オブジェクトです。私のサーバーログには次のものがあります:

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

これが最初に登録したのと同じクライアント アクターであることを (サーバー側で) どのように判断できますか? 明らかに、各クライアントに独自のUUIDものを吹き込むことができますが、もっと簡単な方法があるのだろうか?

4

2 に答える 2

1

scala ユーザーのメーリング リストでの議論から、これは別の種類のクライアント識別子 ( など) を使用しないとすぐには可能ではないようUUIDです。self登録オブジェクトでクライアントから参照を送信すると、ObjectNotSerializableエラーが発生します。

于 2009-06-30T08:32:12.757 に答える
0

メッセージに送信者を明示的に追加します。RemoteActor.select を使用して scala.actors.remote.Proxy を取得します。その toString メソッドを使用して、送信者を識別します。

于 2010-07-15T17:49:49.420 に答える