信号器与Android客户端

时间:2015-02-13 05:37:17

标签: android signalr signalr.client

您好我是Signalr的新手,我想开发Android本机客户端应用程序,以便与信号服务器进行通信。所以我按照"whathecode"文章进行操作,但仍然无法连接到服务器。任何人都可以给我一些示例项目或示例。对我来说有很大的帮助。

谢谢。

public void connect(){

        HubConnection con = new   HubConnection(Uri.parse("http://10.0.2.2:3227/").toString());
        HubProxy hub = con.createHubProxy("MyHub1");
        con.start();
        try {
            hub.invoke( "Send", "user", "Hello world!" ).get();
        } catch (InterruptedException e) {
            // Handle ...
        } catch (ExecutionException e) {
            // Handle ...
        }
    }

2 个答案:

答案 0 :(得分:0)

我遇到了和你一样的问题,但是通过在我的Windows防火墙设置中添加3227部分以允许所有连接来解决它。

我还建议不要创建localhost使用一些ip并创建SignalR服务器,之后它应该可以正常工作。

答案 1 :(得分:0)

    private void createConnections() {

        Platform.loadPlatformComponent(new AndroidPlatformComponent());
        String host = "http://192.168.0.63/SignalRServerApp/signalr";
        final HubConnection connection = new HubConnection(host, false);
        final HubProxy hp = connection.createHubProxy("MyHubController");
        Toast.makeText(getActivity(), SampleWork.getStringData(), Toast.LENGTH_LONG).show();
        System.out.println(SampleWork.getStringData());

        SignalRFuture<Void> awaitConnection = connection.start();
        try {

            EditText text = (EditText) getActivity()
                    .findViewById(R.id.text);

            String data = text.getText().toString();
            awaitConnection.get();
            try {
                hp.invoke("ReceiveData", data);

            } catch (Exception e) {
                System.out.println("Error");
            }
            //Calling a server method named "Acknowledge" 
            hp.on("Acknowledge", new SubscriptionHandler1<String>() {

                @Override
                public void run(final String p1) {
                    //Here u gets the response from server

                }

            }, String.class);

            System.out.println("Test");

        } catch (Exception e) {
            e.printStackTrace();

        }

    }`enter code here`