【问题标题】:Why can't I get my android emulator to connect to my local server?为什么我不能让我的 android 模拟器连接到我的本地服务器?
【发布时间】:2019-04-30 12:34:37
【问题描述】:

我正在使用 React Native 开发一个应用程序,并使用 node.js 制作我的服务器。对于 websocket 连接,我使用 socket.io

问题是,如果我将应用程序安装到我的 android 设备和我的 android 模拟器,只有我的 android 设备可以连接到我的本地服务器。它们都运行相同的代码。我检查了一下,模拟器有一个活跃的互联网连接。奇怪的是我在模拟器中有另一个应用程序,它使用相同的连接方法连接到同一台服务器而没有任何问题。

你们知道为什么会出现这样的问题吗?

【问题讨论】:

  • 根据您提供的信息很难回答。最好的猜测是检查 Android 中的 class,它创建和处理两个应用程序中编写的 websocket 连接的生命周期。也许它有轻微的差异导致您的问题?
  • 我之前确实检查过,一切都一样。我不明白在使用同一个应用程序时,我如何能够与我的物理设备建立连接,但不能与模拟器建立连接。
  • 那么您是否使用计算机的 IP 地址从应用程序连接?看看这个developer.android.com/studio/run/emulator-networking。表示模拟器使用10.0.2.2 作为对127.0.0.1 的环回,因为模拟器在使用代理与您的计算机隔离的环境中运行。

标签: javascript node.js react-native socket.io android-emulator


【解决方案1】:

Android 模拟器有一个内置 IP,可在连接到本地计算机上的某些东西时使用。

如果套接字在 localhost 上运行,您想在模拟器中使用 IP 地址 10.0.2.2 进行连接。

【讨论】:

    猜你喜欢
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    相关资源
    最近更新 更多