假设我有 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();
我猜这会向所有客户广播一条消息?如何仅指定单个客户端?甚至支持这种使用场景吗?