可以在 Android Studio 中模拟 MQTT 代理吗?
It is possible to mock a MQTT broker in Android Studio?
我想在 Android Studio 中对 Mqtt 客户端模块进行单元测试,因为我想将数据从 Android 设备发送到 PC,但我不知道如何在没有真实服务器的情况下测试,我正在使用 paho 库。有办法吗?
是的,在 Mac、Linux 或 Windows 上使用 Android Studio 和 Android 模拟器进行开发时,很容易执行本地离线测试计算机 -
首先在本地主机上安装 mosquitto 和 运行 代理(在 Windows 上只需双击 mosquitto.exe
,在 Linux/Mac 运行 ./mosquitto
在终端 window).
然后打开另一个终端window并通过运行ning订阅所有主题:
./mosquito_sub -v -t "#"
或在命令 Windows 上 window:
mosquito_sub.exe -v -t "#"
最后在您的 Java 源代码中更改 URL when 运行ning in the emulator:
public static boolean isEmulator() {
return (Build.PRODUCT != null && Build.PRODUCT.toLowerCase().contains("sdk")) ||
(Build.MODEL != null && Build.MODEL.toLowerCase().contains("sdk"));
}
private static final String BROKER_URL =
isEmulator() ? "tcp://10.0.2.2/" : "tcp://test.mosquitto.org/";
您不能使用 paho 库来模拟代理,但是可以使用 moquette 代理 (https://github.com/moquette-io/moquette) 将代理嵌入现有的 Java 应用程序
我想在 Android Studio 中对 Mqtt 客户端模块进行单元测试,因为我想将数据从 Android 设备发送到 PC,但我不知道如何在没有真实服务器的情况下测试,我正在使用 paho 库。有办法吗?
是的,在 Mac、Linux 或 Windows 上使用 Android Studio 和 Android 模拟器进行开发时,很容易执行本地离线测试计算机 -
首先在本地主机上安装 mosquitto 和 运行 代理(在 Windows 上只需双击 mosquitto.exe
,在 Linux/Mac 运行 ./mosquitto
在终端 window).
然后打开另一个终端window并通过运行ning订阅所有主题:
./mosquito_sub -v -t "#"
或在命令 Windows 上 window:
mosquito_sub.exe -v -t "#"
最后在您的 Java 源代码中更改 URL when 运行ning in the emulator:
public static boolean isEmulator() {
return (Build.PRODUCT != null && Build.PRODUCT.toLowerCase().contains("sdk")) ||
(Build.MODEL != null && Build.MODEL.toLowerCase().contains("sdk"));
}
private static final String BROKER_URL =
isEmulator() ? "tcp://10.0.2.2/" : "tcp://test.mosquitto.org/";
您不能使用 paho 库来模拟代理,但是可以使用 moquette 代理 (https://github.com/moquette-io/moquette) 将代理嵌入现有的 Java 应用程序