【问题标题】:SignalR Client connection issues? Can't connect to path with HubConnection()SignalR 客户端连接问题?无法使用 HubConnection() 连接到路径
【发布时间】:2012-06-20 02:15:23
【问题描述】:

我一直在尝试在 wiki 中查找有关执行此操作的信息,我正在关注它,但我似乎遗漏了什么?

这就是我所在的地方:

我有一个在本地运行良好的客户端 JS。 我现在想通过 API 发送一些东西来更新客户端版本。我应该使用 SignalR Client 对吗?

这就是我所拥有的:

    var connection = new HubConnection("http://localhost/test/echo", useDefaultUrl: false);

全球.asax

 RouteTable.Routes.MapConnection<MyConnection>("echo", "echo/{*operation}");

我收到一条错误消息,即未声明取消令牌.... 是我没有点击我的 HubConnection 页面吗?

如果您需要我澄清,请告诉我。 谢谢,

更新:

感谢您的回复!我仍然不确定集线器如何与持久连接对话?

这就是我目前所拥有的......

namespace ConnectionHubDemo{

 public class ChatHub : Hub
{
    public void SendMessage(string message)
    {
        Clients.NewMessage(message);
    }
}
public class ConnectionHub
{
    public string test(string data)
    {
        //Will this talk to my PersistentConnection?
        var connection = new HubConnection("http://localhost/test", false);
        var myHub = connection.CreateProxy("ConnectionHubDemo.ServiceHub");
         //How would I send a message to my persisten connection?
        //myHub...
        //If succcessful bla bla bla
        return data;
    }
}

}

【问题讨论】:

    标签: c# asp.net signalr


    【解决方案1】:

    那是因为您没有使用 Hub。您正在混合集线器和持久连接。在服务器上,集线器会自动路由,因此无需映射任何内容(请参阅https://github.com/SignalR/SignalR/wiki/Hubs)。来自维基:

    与低级 PersistentConnections 不同,无需为集线器指定路由,因为它们可以通过特殊的 url (/signalr) 自动访问。这个网址是可配置的:

    要使客户端工作,您只需声明一个带有根 url 的 HubConnection(请参阅https://github.com/SignalR/SignalR/wiki/SignalR-Client-Hubs)。再次来自文档:

    要使用 SignalR 连接到集线器,请使用适当的 url 创建一个 HubConnection。 注意:此 url 不会指向特定的连接。而是指向您网站的根目录。 例子

    var connection = new HubConnection("http://mysite/");
    

    所以在你的情况下,这将是:

    var connection = new HubConnection("http://localhost/test");
    

    希望这会有所帮助。

    更新

    集线器不要与持久连接交谈。您所要做的就是遵循文档。我上面的回答显示了如何在服务器和客户端上使用集线器。

    如果您想使用持久连接,请查看文档https://github.com/SignalR/SignalR/wiki/PersistentConnection(服务器)和https://github.com/SignalR/SignalR/wiki/SignalR-Client(客户端)。

    【讨论】:

    • 抱歉混淆了,我可以使用 SignalR 客户端与我的持久连接对话。谢谢
    猜你喜欢
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 2012-04-22
    • 2014-03-31
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多