Не удалось установить соединение с Android и Socket - PullRequest
0 голосов
/ 22 октября 2018

Я хочу создать соединение между моей страницей node.js и моим java-приложением

Я пытаюсь связать эту страницу node.js, эту страницу:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
    console.log("Load ...");
    res.sendFile(__dirname+"/index.html");
});
io.on('connection', function(socket){
    console.log('one user connected : ' + socket.id);
});
http.listen(3000 ,function(){
    console.log('Start server on port 3000');
});

сэтот код Java:

Моя розетка, эта страница просто для того, чтобы сообщить мне, если кто-то присоединился к сокету, страница размещена на http://192.168.0.12:3000/:

private Socket socket;
{
    try{
        socket = IO.socket("http://192.168.0.12:3000");
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
}

Мои слушателиздесь я просто проверяю, какой тип ошибок я получаю:

    socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
        @Override
        public void call(Object... args) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(getApplicationContext(), "Connect", Toast.LENGTH_SHORT).show();
                }
            });
        }
    });
    socket.on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener() {
        @Override
        public void call(Object... args) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(getApplicationContext(), "Errors", Toast.LENGTH_SHORT).show();
                }
            });
        }
    });
    socket.on(Socket.EVENT_CONNECT_TIMEOUT, new Emitter.Listener() {
        @Override
        public void call(Object... args) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(getApplicationContext(), "Timeout", Toast.LENGTH_SHORT).show();
                }
            });
        }
    });
    socket.connect();

У меня всегда одна и та же ошибка Socket.EVENT_CONNECT_ERROR.Мой node.js работает в сети, но Мой код node.js работает для интернет-браузеров, но не для Android, я думаю, что это из конфигурации, но я не знаю.

Спасибо

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Решение:

просто добавьте это в манифест:

 android:usesCleartextTraffic="true"
0 голосов
/ 22 октября 2018

Во-первых, проверьте, может ли ваше устройство Android получить доступ к серверу node.js

, зайдите в браузер на вашем устройстве и запросите то же самое url

, возможно, вы не можете получить доступ к ресурсуна первом месте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...