我在使用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");
}
}一切正常,来自客户池的事件到达控制器,clientId的值是正确的,但是消息总是为null。我做错什么了吗?
谢谢!
发布于 2014-02-04 02:35:58
您不应该创建一个TextArgs并将其发送到服务器。您可以向服务器发送任何您想要的东西,如果服务器端方法(action方法)上没有自定义参数,XSockets将为您创建一个ITextArgs,因为您没有指定任何内容。请参阅:http://xsockets.net/docs/c-server-api#custom-controllers
你的代码应该是。
//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方法中的一个参数。
https://stackoverflow.com/questions/21532129
复制相似问题