一些开发人员开发了移动应用程序,可以将特定的 SMS 发送到远程 Websocket 服务器。
对于许多手机来说,连接和发送短信已经足够快了。然而,有一些手机需要 5-10 秒额外的时间来发送 SMS。
这是在移动设备中接收到它的时间(我听到声音)和 websocket 服务器实际接收到它的时间。
至少在 Oneplus 6 中,这段代码可能会减慢我的速度:
WebSocketClient mWebSocketClient = new WebSocketClient(uri) {
@Override
public void onOpen(ServerHandshake serverHandshake) {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("op", "saveotp");
jsonObject.put("mobile", CachedData.getString(CachedData.login, ""));
jsonObject.put("email", CachedData.getString(CachedData.email, ""));
jsonObject.put("vehicle", CachedData.getString(CachedData.vehicle, ""));
jsonObject.put("custom1", CachedData.getString(CachedData.custom, ""));
jsonObject.put("l", "aabffffdee");
jsonObject.put("source", 999999);
String version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
jsonObject.put("version", "native" + version);
jsonObject.put("count", count2);
jsonObject.put("sms", smsData.message);
jsonObject.put("received", smsData.received_time);
jsonObject.put("sent", StringHelper.getCurrentStringTime());
} catch (Exception e) {
e.printStackTrace();
}
Log.e(TAG, jsonObject.toString());
this.send(jsonObject.toString());
}
@Override
public void onMessage(String s) {
Log.e("onMessage", s);
Log.e(TAG, "Sent to WSS2");
if (s.equals("otpreceived")) {
count2 = 0;
smsData.isSentWS2 = true;
DBManager.getInstance().updateSmsData(smsData);
DBManager.getInstance().checkSmsData(smsData.id);
}
isSyncWS2 = false;
}
@Override
public void onClose(int i, String s, boolean b) {
count2++;
Log.e(TAG, "Count 2: " + count2);
isSyncWS2 = false;
}
@Override
public void onError(Exception e) {
isSyncWS2 = false;
Log.e(TAG, "Error 2: " + e.getLocalizedMessage());
}
};
try {
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustAllCerts, new SecureRandom());
SSLSocketFactory factory = sslContext.getSocketFactory();
mWebSocketClient.setSocket(factory.createSocket());
mWebSocketClient.connect();
mWebSocketClient.setConnectionLostTimeout(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
我进行了搜索,但在这段代码中没有发现任何可能减慢速度的内容。我假设远程 Websocket 服务器足够快,延迟不是由于它。