有没有一个使用SignalR向.NET Hub发送消息的控制台或Winform应用程序的小例子?我已经尝试了.NET示例并查看了Wiki,但我不明白Hub(.NET)与客户端(控制台应用程序)之间的关系(找不到此类示例)。这个应用程序只需要连接到Hub的地址和名称吗?
如果有人能提供一个小代码片段,显示应用程序连接到一个Hub并发送“Hello World”或其他.NET Hub接收到的内容。
PS:我有一个标准的Hub聊天示例,它运行良好,但是如果我尝试将其分配给Cs中的Hub名称,它会停止工作,即[HubName("test")],你知道原因吗?
谢谢。
当前控制台应用程序代码。
如果有人能提供一个小代码片段,显示应用程序连接到一个Hub并发送“Hello World”或其他.NET Hub接收到的内容。
PS:我有一个标准的Hub聊天示例,它运行良好,但是如果我尝试将其分配给Cs中的Hub名称,它会停止工作,即[HubName("test")],你知道原因吗?
谢谢。
当前控制台应用程序代码。
static void Main(string[] args)
{
//Set connection
var connection = new HubConnection("http://localhost:41627/");
//Make proxy to hub based on hub name on server
var myHub = connection.CreateProxy("chat");
//Start connection
connection.Start().ContinueWith(task =>
{
if (task.IsFaulted)
{
Console.WriteLine("There was an error opening the connection:{0}", task.Exception.GetBaseException());
}
else
{
Console.WriteLine("Connected");
}
}).Wait();
//connection.StateChanged += connection_StateChanged;
myHub.Invoke("Send", "HELLO World ").ContinueWith(task => {
if(task.IsFaulted)
{
Console.WriteLine("There was an error calling send: {0}",task.Exception.GetBaseException());
}
else
{
Console.WriteLine("Send Complete.");
}
});
}
中央服务器(另一个项目工作区)
public class Chat : Hub
{
public void Send(string message)
{
// Call the addMessage method on all clients
Clients.addMessage(message);
}
}
这个的信息维基是 http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-net-client