Разъем для 2 устройств в одной сети не работает - PullRequest
0 голосов
/ 04 мая 2020

Я на самом деле работаю над приложением Electron JS и приложением Ioni c.

Приложение Electron имеет сервер Socket (с использованием Sock JS), а приложение Ioni c - клиент Socket.

Моя проблема заключается в том, что я запускаю два приложения на одном устройстве , он работает нормально, но когда приложение Electron запускается на моем компьютере и приложение Ioni c на моем устройстве android, оно не работает.

Я пробовал использовать свой локальный IP-адрес, localhost, 0.0 .0.0, 127.0.0.1. Но никто не работает.

Электрон:

const {ipcMain} = require('electron')
let app = require('express')();
const http = require('http').Server(app);
let io = require('socket.io')(http);

io.sockets.on('connection', function (socket) {
    console.log('socket connected');

    socket.on('disconnect', function () {
        console.log('socket disconnected');
    });

    socket.emit('text', 'wow. such event. very real time.');
});

var port = process.env.PORT || 9999;

http.listen(port, function(){
   console.log('listening in http://localhost:' + port);
});

Иони c:

import { Injectable } from '@angular/core';
import { HttpClient  } from '@angular/common/http'; 
import { Socket, SocketIoConfig } from 'ngx-socket-io';

@Injectable({
  providedIn: 'root'
})
export class CoreService {
  config: SocketIoConfig
  private socket: Socket
  constructor(private http:HttpClient) { 
    this.config = { url: 'http://localhost:9999', options: { secure: true } };
  }

  connectSocket() {
    this.socket = new Socket(this.config)
    this.socket.connect()
    this.socket.on('text',(value) => {
      console.log(value)
    })
  }
}

Если кто может мне помочь.

РЕДАКТИРОВАТЬ 1

Много чего пробую. Я отключил свой брандмауэр для тестирования и попробовал этот IP (Localhost, 0.0.0.0, local IP, 127.0.0.1), но никто не работает.

Связь работает, когда я нахожусь на одном компьютере (Ioni c в эмуляторе или веб-браузере). Но когда я тестирую свое устройство android, оно не работает. (Я в той же сети)

У меня нет ошибки на ioni c:

D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
W/InputMethodManager: startInputReason = 1
I/HwSecImmHelper: mSecurityInputMethodService is null
I/HwSecImmHelper: mSecurityInputMethodService is null
I/HwSecImmHelper: mSecurityInputMethodService is null
I/HwSecImmHelper: mSecurityInputMethodService is null
I/HwSecImmHelper: mSecurityInputMethodService is null
I/HwSecImmHelper: mSecurityInputMethodService is null

И теперь я использую Socket.io вместо Sock JS, но все равно не работает ..

...