带有 android 个客户端的信号器

Signalr with android client

您好,我是 Signalr 的新手,我想开发 android 本机客户端应用程序以与 Signalr 服务器通信。所以我关注了 "whathecode" 文章,但我仍然无法连接到服务器。任何人都可以给我一些示例项目或 example.Its 对我有很大帮助。

谢谢。

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 ...
        }
    }

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

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

    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`