连接适用于localhost但我无法从其他PC SIgnalR连接到服务器

时间:2018-05-30 08:02:45

标签: c# asp.net .net unity3d signalr

我试图与连接客户端 - 服务器 - 客户端建立一个统一应用程序。这是我的服务器:

    class Program
{
  static IDisposable SignalR;

  static void Main(string[] args)
  {
        string url = "http://localhost:8089";
        //string url = "http://127.0.0.1:8088";

        SignalR = WebApp.Start(url);

     Console.ReadKey();
  }

  public class Startup
  {
     public void Configuration(IAppBuilder app)
     {
        app.UseCors(CorsOptions.AllowAll);
        app.MapSignalR();
     }
  }

  [HubName("MyHub")]
  public class MyHub : Hub
  {
     public void Send(Guid name, int[] message)
     {
            //bramka - to co dostanie od jednego klienta rozpowie wszytskim
        Console.WriteLine($"message sent from {name.ToString()}: move from {message[0]},{message[1]} to {message[2]},{message[3]}");
       Clients.All.addMessage(name, message);
     }
  }

}

这是我客户的一部分:

    var connection = new HubConnection("http://HERE IS IP ADDRESS OF SERVER:8089/");
    myHub = connection.CreateHubProxy("MyHub");

     connection.Start();

如果在客户端我尝试连接到我的本地主机,但是如果服务器在其他PC上,我无法建立与此错误的连接:" InvalidOperationException:连接尚未建立,一切正常" 有谁知道我该怎么做才能修复它?我是编程方面的新手,也是signalR的新手。

1 个答案:

答案 0 :(得分:0)

使用服务器ip或为服务器计算机定义dns,因此您可以调用域URL而不是localhost。 您可以使用如下代码检索服务器IP地址。

IPAddress[] addresslist = Dns.GetHostAddresses(Dns.GetHostName());