3

我正在使用 WinRT 客户端。当我尝试发送消息时收到此异常。

解析值时遇到意外字符:<。

当您将对象发送到集线器时,会出现此问题,并且该对象未在集线器上定义。该对象是一个可绑定对象 (ViewModel)。我不想在 web 项目中包含所有属性通知更改内容。

客户代码

return Proxy.Invoke("PlayerUpdate", sessionData);

尝试一种方法是让集线器接受“对象”参数

public async Task PlayerUpdate(string group, object sessionData)
{
 await Clients[group].PlayerUpdate(sessionData);
}

尝试二是让集线器接受一个 (json) 'string' 参数

public async Task PlayerUpdate(string group, string sessionData)
{
 await Clients[group].PlayerUpdate(sessionData);
}

尝试三是预序列化对象客户端

var str = JsonConvert.SerializeObject(refresh);
return Proxy.Invoke("PlayerUpdate", str);

没有任何工作。方案 4 是在共享库中定义一些数据传输对象进行发送。我真的不想这样做,因为它会使我的代码加倍。

4

3 回答 3

3

解决了。

我的回购项目很好,所以我得出的结论是其他问题。

经过一些实验,我发现真正的问题是我的 HUB 方法中的参数不正确。简而言之,当我的集线器方法只接受 1 个时,我发送了 2 个参数。

感谢您的关注,很抱歉造成混乱。也许一个更好的异常消息是为了?

于 2012-10-17T18:36:14.237 回答
0

这似乎是 SignalR 的内部错误,我认为没有人能够在 StackOverflow 上为您提供帮助。您应该向 SignalR GitHub 项目提交问题

于 2012-10-04T22:40:25.583 回答
0

仅当站点 URL 包含尾随Default.aspx. 以下清理了HubConnection URL 参数:

string serverUri = new Uri(HtmlPage.Document.DocumentUri, ".").ToString();
HubConnection connection = new HubConnection(serverUri, true);
于 2016-01-16T01:08:53.387 回答