首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSocket.net ClientPool工作不正常

XSocket.net ClientPool工作不正常
EN

Stack Overflow用户
提问于 2014-02-03 16:08:58
回答 1查看 215关注 0票数 0

我在使用XSockets.net时遇到了一个奇怪的问题,也许有人能帮我找出我做错了什么。

我的主要方法如下:

代码语言:javascript
复制
public void SendMessageToTestController(Guid id, string mess)
{
    ITextArgs textargs = new TextArgs(mess, "SendEventMessageToClient", "TestController");
    poolClient.Send(new { clientId = id, message = textargs }, "SendEventMessageToClient");
}

在我的控制器里:

代码语言:javascript
复制
 public void SendEventMessageToClient(Guid clientId, ITextArgs message)
        {
            if (message != null)
            {
                this.SendTo(p => p.ClientGuid == clientId, message.data, "events");
            }
        }

一切正常,来自客户池的事件到达控制器,clientId的值是正确的,但是消息总是为null。我做错什么了吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-04 02:35:58

您不应该创建一个TextArgs并将其发送到服务器。您可以向服务器发送任何您想要的东西,如果服务器端方法(action方法)上没有自定义参数,XSockets将为您创建一个ITextArgs,因为您没有指定任何内容。请参阅:http://xsockets.net/docs/c-server-api#custom-controllers

你的代码应该是。

代码语言:javascript
复制
//Client    
public void SendMessageToTestController(Guid id, string mess)
{        
    poolClient.Send(new { clientId = id, message = mess }, "SendEventMessageToClient");
}

//Action method on Controller
public void SendEventMessageToClient(Guid clientId, string message)
{
    this.SendTo(p => p.ClientGuid == clientId, message, "event");
}

由于当有对象而不是多个参数时,序列化更快,所以我会选择一个包含clientid和message的简单模型,并将其作为aciton方法中的一个参数。

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

https://stackoverflow.com/questions/21532129

复制
相关文章

相似问题

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