Как я могу найти время отклика Запроса HTTP через Сокет

На самом деле для этого вам не нужен iframe. Вы можете использовать wixCode для этого. WixCode, у вас есть коллекция БД. и все, что вам нужно сделать, это обновить значения коллекции при каждом клике.

Допустим, вы добавляете коллекцию Events, которая может иметь поля: id, eventName, clicksCount

добавить к ней одну строку с eventName = 'someButtonClickEvent' и clicksCount = 0 Затем добавьте следующий код на свою страницу :

import wixData from 'wix-data';

$w.onReady(function () {});

export function button1_click(event) {
    wixData.get("Events", "the_event_id")
      .then( (results) => {
        let item = results;
        let toSave = {
           "_id": "the_event_id",
           "clicksCount":   item.clicksCount++
        };

        wixData.update("Events", toSave)
    })
}

теперь вам нужно добавить button1_click в качестве обработчика onClick вашей кнопки (на панели свойств wixCode).

19
задан 3 revs 16 September 2008 в 03:17
поделиться

5 ответов

Я сказал бы, что это зависит, на каком точном интервале Вы пробуете меру, количество времени от последнего байта запроса, который Вы отправляете до первого байта ответа, который Вы получаете? Или пока весь ответ не получен? Или Вы пытаетесь измерить время серверной стороны только?

, При попытке измерить серверное время обработки только, Вы собираетесь перенести трудности факторизовать количество времени, проведенное в сетевом транзите для Вашего запроса для прибытия и ответ на возврат. Иначе, так как Вы управляете запросом сами через Сокет, можно измерить прошедшее время между любыми двумя моментами путем проверки Системных часов и вычислений различия. Например:

public void sendHttpRequest(byte[] requestData, Socket connection) {
    long startTime = System.currentTimeMillis();
    writeYourRequestData(connection.getOutputStream(), requestData);
    byte[] responseData = readYourResponseData(connection.getInputStream());
    long elapsedTime = System.currentTimeMillis() - startTime;
    System.out.println("Total elapsed http request/response time in milliseconds: " + elapsedTime);
}

Этот код измерил бы время от того, когда Вы начинаете выписывать свой запрос к тому, когда Вы заканчиваете получать ответ и печатаете результат (предполагающий, что у Вас есть свои определенные реализованные методы чтения-записи).

12
ответ дан 30 November 2019 в 02:34
поделиться

Можно использовать время и завихриться и время на командной строке.-I аргумент в пользу завихрения дает этому команду только запрашивать заголовок.

time curl -I 'http://server:3000'
12
ответ дан 30 November 2019 в 02:34
поделиться

Что-то вроде этого могло бы добиться цели

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.lang.time.StopWatch;
//import org.apache.commons.lang3.time.StopWatch

public class Main {

    public static void main(String[] args) throws URIException {
        StopWatch watch = new StopWatch();
        HttpClient client = new HttpClient();
        HttpMethod method = new HeadMethod("http://stackoverflow.com/");

        try {
            watch.start();
            client.executeMethod(method);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            watch.stop();
        }

        System.out.println(String.format("%s %s %d: %s", method.getName(), method.getURI(), method.getStatusCode(), watch.toString()));

    }
}
HEAD http://stackoverflow.com/ 200: 0:00:00.404
7
ответ дан 30 November 2019 в 02:34
поделиться

Возможно, я пропускаю что-то, но почему не делают Вас, просто используйте:

// open your connection
long start = System.currentTimeMillis();
// send request, wait for response (the simple socket calls are all blocking)
long end = System.currentTimeMillis();
System.out.println("Round trip response time = " + (end-start) + " millis");
2
ответ дан 30 November 2019 в 02:34
поделиться

Используйте AOP, чтобы прервать вызовы к сокету и измерить время отклика.

0
ответ дан 30 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: