Допустим, у меня есть 3 клиента: клиент A, клиент B и клиент C.
Все они поддерживают функцию Ping(), которую они регистрируют с помощью отражения (код основан на документации WampSharp):
public interface IArgumentsService
{
[WampProcedure("com.arguments.ping")]
void Ping();
}
public class ArgumentsService : IArgumentsService
{
public void Ping()
{
}
}
IArgumentsService services = channel.RealmProxy.Services;
ArgumentService callee = new ArgumentService(this);
services.RegisterCallee(callee);
Затем я настроил прокси на каждом клиенте для совершения исходящих вызовов:
DefaultWampChannelFactory channelFactory = new DefaultWampChannelFactory();
IWampChannel channel = channelFactory.CreateJsonChannel("ws://127.0.0.1:8080/", "realm1");
Task channelOpenTask = channel.Open();
channelOpenTask.Wait();
IArgumentsService proxy = channel.RealmProxy.Services.GetCalleeProxy<IArgumentsService>();
Как мне отправить сообщение от клиента A клиенту C? Я не вижу способа обратиться к конкретному клиенту при отправке сообщения на маршрутизатор через прокси? Все, что я могу сделать, это следующее:
proxy.Ping();
Я предполагаю, что это будет транслировать сообщение всем клиентам? Как указать только одного клиента? Этот сценарий использования вообще поддерживается?