Websocket XSocket.net客户端池工作不正常

Websocket XSocket.net客户端池工作不正常,websocket,xsockets.net,Websocket,Xsockets.net,我在使用XSockets.net时遇到了一个奇怪的问题,也许有人能帮我找出我做错了什么 我主要采用以下方法: public void SendMessageToTestController(Guid id, string mess) { ITextArgs textargs = new TextArgs(mess, "SendEventMessageToClient", "TestController"); poolClient.Send(new { clientId = id,

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

我主要采用以下方法:

public void SendMessageToTestController(Guid id, string mess)
{
    ITextArgs textargs = new TextArgs(mess, "SendEventMessageToClient", "TestController");
    poolClient.Send(new { clientId = id, message = textargs }, "SendEventMessageToClient");
}
在我的控制器中:

 public void SendEventMessageToClient(Guid clientId, ITextArgs message)
        {
            if (message != null)
            {
                this.SendTo(p => p.ClientGuid == clientId, message.data, "events");
            }
        }
一切正常,来自clientpool的事件到达控制器,clientId的值正确,但消息始终为null。我做错什么了吗


谢谢

不应创建TextArgs并将其发送到服务器。您可以向服务器发送任何需要的内容,如果您的服务器端方法(操作方法)上没有自定义参数,XSockets将为您创建一个ITextArgs,因为您没有指定任何内容。 见:

你的代码应该是

//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方法的单个参数。

再次感谢Uffe,我想现在我理解了您设计背后的思想,它的工作非常有魅力!!:)