0

一些开发人员开发了移动应用程序,可以将特定的 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 服务器足够快,延迟不是由于它。

4

0 回答 0