在SignalR教程中:http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-signalr-20-self-host
static void Main(string[] args)
{
// This will *ONLY* bind to localhost, if you want to bind to all addresses
// use http://*:8080 to bind to all addresses.
// See http://msdn.microsoft.com/en-us/library/system.net.httplistener.aspx
// for more information.
string url = "http://localhost:8080";
using (WebApp.Start(url))
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
}
何时仅绑定到localhost,何时选择绑定到所有地址?
我发现它很奇怪,因为我在服务器和客户端都指定了localhost
。
这是我作为Windows服务托管的客户端代码
var hubConnection = new HubConnection("http://localhost:8080/");
IHubProxy hubProxy = hubConnection.CreateHubProxy("MyHub");
hubProxy.On<string, string>("addMessage", (name, message) =>
{
Log.Info(string.Format("Incoming data: {0} {1}", name, message));
});
ServicePointManager.DefaultConnectionLimit = 10;
await hubConnection.Start();
当我的服务器绑定到所有地址
时,客户端工作string url = "http://*:8080";
如果我只绑定到localhost,我的客户端不会收到来自服务器的任何消息。
答案 0 :(得分:0)
您是否在同一台计算机上运行客户端和服务器?如果没有,'localhost'将无效。请尝试使用机器名称。