0

SignalR我正在使用 VS 2010 在 asp .net Web 应用程序中进行跨域实现。

我的问题是我无法HubConnection()从我的应用程序访问。我已经安装了 SignalR 版本 0.5.3 。我已经搜索了名称空间, HubConnection()但找不到任何名称。谁能告诉我HubConnection()无法访问的名称空间或原因。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SignalR;

namespace SignalRVersion5
{
    public partial class TestServerEvent : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            var connection = new HubConnection("http://localhost:58416/");
            var chat = connection.CreateProxy("chat");
            chat.On<string>("addMessage", Console.WriteLine);
            try
            {
                connection.Start().Wait();
                string msg = null;
                while ((msg = Console.ReadLine()) != null)
                {
                    chat.Invoke("send", msg).Wait();
                }
            }
            catch (Exception ex)
            {
                using (var error = ex.GetError()) // NEW ERROR HANDLING FEATURES
                {
                    Console.WriteLine(error.StatusCode);
                }
            }
        }
    }
}
4

2 回答 2

2

您需要使用 NuGet 上提供的 SignalR 客户端包:http: //nuget.org/packages/Microsoft.AspNet.SignalR.Client

您应该使用 SignalR 的 1.0.0 RC2 版本。0.5.3 已过时。

一旦你安装了正确的客户端包,你应该使用Microsoft.AspNet.SignalR.Client.Hubs命名空间。

https://github.com/SignalR/SignalR/wiki上的文档不断更新最新版本的 SignalR。以下文档与使用 .NET 客户端库和集线器有关:https ://github.com/SignalR/SignalR/wiki/SignalR-Client-Hubs

于 2013-01-28T23:31:30.070 回答
1

这是一个使用 SignalR.Client 0.5.1.1 的示例。如果您正在创建一个新项目,我绝对建议您先查看 SignalR 1.0。

using SignalR.Client.Hubs;

var hubConnection = new HubConnection(HUB_URL);
var hub = hubConnection.CreateProxy(HUB_NAME);

Console.WriteLine("Starting connection");

await hubConnection.Start();

Console.WriteLine("Connected");

var start = DateTime.Now;
var question = new Question
{
    Text = "text message",
    Time = start.ToString("d")
}
};

await hub.Invoke("Ask", question);
hubConnection.Stop();
于 2013-01-28T23:49:45.447 回答