首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用WampSharp向特定客户端发送消息?

如何使用WampSharp向特定客户端发送消息?
EN

Stack Overflow用户
提问于 2016-02-29 12:50:22
回答 1查看 1K关注 0票数 0

假设我有三个客户:客户A,客户B和客户C。

它们都支持Ping()函数,它们使用反射(基于WampSharp文档的代码)注册该函数:

代码语言:javascript
复制
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);

接下来,我在每个客户端上设置了一个代理来进行出站呼叫:

代码语言:javascript
复制
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发送信息?当通过代理向路由器发送消息时,我看不到有一种方式来寻址特定的客户端?我所能做的就是:

代码语言:javascript
复制
proxy.Ping();

我猜这会向所有客户传达信息吗?如何仅指定单个客户端?这个使用场景支持吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-29 14:08:45

根据WAMP基本配置文件规范,不可能在每个路由器的范围内多次注册相同的过程。下面的代码将在注册时出现异常(wamp.error.procedure_already_exists)。为了实现您想要的结果,请考虑为每个客户端注册不同的过程uri。这可以使用ICalleeRegistrationInterceptor来实现。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35700030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档