简单信号器Android示例问题

简单信号器Android示例问题,android,azure,websocket,signalr,signalr-hub,Android,Azure,Websocket,Signalr,Signalr Hub,我基本上是想从我的安卓系统向我的服务器发送一条消息,然后服务器向我的安卓应用程序发回响应。我跟着 只需一个简单的练习,就可以使用Azure Web API和Android向Signaler介绍我自己 我的完整服务器代码(C): public class TestHub: Hub { public void SendMessage(string name, string message) { // Call the broadcastMessage m

我基本上是想从我的安卓系统向我的服务器发送一条消息,然后服务器向我的安卓应用程序发回响应。我跟着

只需一个简单的练习,就可以使用Azure Web API和Android向Signaler介绍我自己

我的完整服务器代码(C):

   public class TestHub: Hub {
        public void SendMessage(string name, string message) {
            // Call the broadcastMessage method to update clients.
            Clients.All.broadcastMessage(name, message);
        }
        public void SendClientMessage(CustomType obj) {
            Clients.All.broadcastMessage("From Server", "Server got the message bro");
        }
        public class CustomType {
            public string Name;
            public int Id;
        }
   }
public class MainActivity extends AppCompatActivity {

    Handler handler;
    TextView statustext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        handler = new Handler();
        statustext = (TextView) findViewById(R.id.status);

        Platform.loadPlatformComponent(new AndroidPlatformComponent());
        // Change to the IP address and matching port of your SignalR server.
        String host = "https://My-Service-name.azure-mobile.net/";
        HubConnection connection = new HubConnection(host);
        HubProxy hub = connection.createHubProxy("TestHub");
        SignalRFuture < Void > awaitConnection = connection.start();

        try {
            awaitConnection.get();
        } catch (InterruptedException e) {

        } catch (ExecutionException e) {

        }

        hub.subscribe(this);

        try {
            hub.invoke("SendMessage", "Client", "Hello Server!").get();
            hub.invoke("SendClientMessage",
                new CustomType() {
                    {
                        Name = "Android Homie";
                        Id = 42;
                    }
                }).get();
        } catch (InterruptedException e) {

        } catch (ExecutionException e) {

        }
    }

    //I have no idea what the following method is for. Just followed the tutorial.. (blindly)
    public void UpdateStatus(String status) {
        final String fStatus = status;
        handler.post(new Runnable() {
            @Override
            public void run() {
                statustext.setText(fStatus);
            }
        });
    }

    public class CustomType {
        public String Name;
        public int Id;
    }
}
完整的Android Java代码:

   public class TestHub: Hub {
        public void SendMessage(string name, string message) {
            // Call the broadcastMessage method to update clients.
            Clients.All.broadcastMessage(name, message);
        }
        public void SendClientMessage(CustomType obj) {
            Clients.All.broadcastMessage("From Server", "Server got the message bro");
        }
        public class CustomType {
            public string Name;
            public int Id;
        }
   }
public class MainActivity extends AppCompatActivity {

    Handler handler;
    TextView statustext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        handler = new Handler();
        statustext = (TextView) findViewById(R.id.status);

        Platform.loadPlatformComponent(new AndroidPlatformComponent());
        // Change to the IP address and matching port of your SignalR server.
        String host = "https://My-Service-name.azure-mobile.net/";
        HubConnection connection = new HubConnection(host);
        HubProxy hub = connection.createHubProxy("TestHub");
        SignalRFuture < Void > awaitConnection = connection.start();

        try {
            awaitConnection.get();
        } catch (InterruptedException e) {

        } catch (ExecutionException e) {

        }

        hub.subscribe(this);

        try {
            hub.invoke("SendMessage", "Client", "Hello Server!").get();
            hub.invoke("SendClientMessage",
                new CustomType() {
                    {
                        Name = "Android Homie";
                        Id = 42;
                    }
                }).get();
        } catch (InterruptedException e) {

        } catch (ExecutionException e) {

        }
    }

    //I have no idea what the following method is for. Just followed the tutorial.. (blindly)
    public void UpdateStatus(String status) {
        final String fStatus = status;
        handler.post(new Runnable() {
            @Override
            public void run() {
                statustext.setText(fStatus);
            }
        });
    }

    public class CustomType {
        public String Name;
        public int Id;
    }
}
public类MainActivity扩展了AppCompatActivity{
处理者;
文本视图状态文本;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handler=新的handler();
statustext=(TextView)findViewById(R.id.status);
loadPlatformComponent(新的AndroidPlatformComponent());
//更改为您的信号服务器的IP地址和匹配端口。
字符串主机=”https://My-Service-name.azure-mobile.net/";
HubConnection连接=新的HubConnection(主机);
HubProxy hub=connection.createHubProxy(“TestHub”);
SignalFutureawaitConnection=connection.start();
试一试{
等待连接。get();
}捕捉(中断异常e){
}捕获(执行例外){
}
订阅(本);
试一试{
invoke(“SendMessage”、“Client”、“Hello Server!”).get();
调用(“SendClientMessage”,
新CustomType(){
{
Name=“Android Homie”;
Id=42;
}
}).get();
}捕捉(中断异常e){
}捕获(执行例外){
}
}
//我不知道下面的方法是干什么的。只是按照教程做的…(盲目地)
公共void UpdateStatus(字符串状态){
最终字符串fStatus=状态;
handler.post(新的Runnable(){
@凌驾
公开募捐{
statustext.setText(fStatus);
}
});
}
公共类自定义类型{
公共字符串名称;
公共int Id;
}
}
这方面的问题:

   public class TestHub: Hub {
        public void SendMessage(string name, string message) {
            // Call the broadcastMessage method to update clients.
            Clients.All.broadcastMessage(name, message);
        }
        public void SendClientMessage(CustomType obj) {
            Clients.All.broadcastMessage("From Server", "Server got the message bro");
        }
        public class CustomType {
            public string Name;
            public int Id;
        }
   }
public class MainActivity extends AppCompatActivity {

    Handler handler;
    TextView statustext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        handler = new Handler();
        statustext = (TextView) findViewById(R.id.status);

        Platform.loadPlatformComponent(new AndroidPlatformComponent());
        // Change to the IP address and matching port of your SignalR server.
        String host = "https://My-Service-name.azure-mobile.net/";
        HubConnection connection = new HubConnection(host);
        HubProxy hub = connection.createHubProxy("TestHub");
        SignalRFuture < Void > awaitConnection = connection.start();

        try {
            awaitConnection.get();
        } catch (InterruptedException e) {

        } catch (ExecutionException e) {

        }

        hub.subscribe(this);

        try {
            hub.invoke("SendMessage", "Client", "Hello Server!").get();
            hub.invoke("SendClientMessage",
                new CustomType() {
                    {
                        Name = "Android Homie";
                        Id = 42;
                    }
                }).get();
        } catch (InterruptedException e) {

        } catch (ExecutionException e) {

        }
    }

    //I have no idea what the following method is for. Just followed the tutorial.. (blindly)
    public void UpdateStatus(String status) {
        final String fStatus = status;
        handler.post(new Runnable() {
            @Override
            public void run() {
                statustext.setText(fStatus);
            }
        });
    }

    public class CustomType {
        public String Name;
        public int Id;
    }
}
1。我得到一个例外:

   public class TestHub: Hub {
        public void SendMessage(string name, string message) {
            // Call the broadcastMessage method to update clients.
            Clients.All.broadcastMessage(name, message);
        }
        public void SendClientMessage(CustomType obj) {
            Clients.All.broadcastMessage("From Server", "Server got the message bro");
        }
        public class CustomType {
            public string Name;
            public int Id;
        }
   }
public class MainActivity extends AppCompatActivity {

    Handler handler;
    TextView statustext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        handler = new Handler();
        statustext = (TextView) findViewById(R.id.status);

        Platform.loadPlatformComponent(new AndroidPlatformComponent());
        // Change to the IP address and matching port of your SignalR server.
        String host = "https://My-Service-name.azure-mobile.net/";
        HubConnection connection = new HubConnection(host);
        HubProxy hub = connection.createHubProxy("TestHub");
        SignalRFuture < Void > awaitConnection = connection.start();

        try {
            awaitConnection.get();
        } catch (InterruptedException e) {

        } catch (ExecutionException e) {

        }

        hub.subscribe(this);

        try {
            hub.invoke("SendMessage", "Client", "Hello Server!").get();
            hub.invoke("SendClientMessage",
                new CustomType() {
                    {
                        Name = "Android Homie";
                        Id = 42;
                    }
                }).get();
        } catch (InterruptedException e) {

        } catch (ExecutionException e) {

        }
    }

    //I have no idea what the following method is for. Just followed the tutorial.. (blindly)
    public void UpdateStatus(String status) {
        final String fStatus = status;
        handler.post(new Runnable() {
            @Override
            public void run() {
                statustext.setText(fStatus);
            }
        });
    }

    public class CustomType {
        public String Name;
        public int Id;
    }
}
java.util.concurrent.ExecutionException: microsoft.aspnet.signal.client.transport.NegotiationException:存在 与服务器协商时出现问题

2。我觉得我没有从Java代码中正确调用服务器。 URL是否应为:

有人能澄清这些疑问并帮我建立它吗