• Как правильно сформировать данные в формате json?

    @Abcdefgk
    Или так:
    var x = `[[Date.UTC(2013,5,2),0.7695],
    [Date.UTC(2013,5,3),0.7648],
    [Date.UTC(2013,5,4),0.7645],
    [Date.UTC(2013,5,5),0.7638],
    [Date.UTC(2013,5,6),0.7549],
    [Date.UTC(2013,5,7),0.7562],
    [Date.UTC(2013,5,9),0.7574]
    ]`;
    var j = JSON.stringify(x);
    console.log(j);
    console.log(JSON.parse(j));
    
    //"[[Date.UTC(2013,5,2),0.7695],\n[Date.UTC(2013,5,3),0.7648],\n[Date.UTC(2013,5,4),0.7645],\n[Date.UTC(2013,5,5),0.7638],\n[Date.UTC(2013,5,6),0.7549],\n[Date.UTC(2013,5,7),0.7562],\n[Date.UTC(2013,5,9),0.7574]\n]"
    
    //[[Date.UTC(2013,5,2),0.7695],
    //[Date.UTC(2013,5,3),0.7648],
    //[Date.UTC(2013,5,4),0.7645],
    //[Date.UTC(2013,5,5),0.7638],
    //[Date.UTC(2013,5,6),0.7549],
    //[Date.UTC(2013,5,7),0.7562],
    //[Date.UTC(2013,5,9),0.7574]
    //]
  • Как правильно сформировать данные в формате json?

    @Abcdefgk
    Евгений Иванов, Можно так:
    var x = "[[Date.UTC(2013,5,2),0.7695],[Date.UTC(2013,5,3),0.7648],[Date.UTC(2013,5,4),0.7645],[Date.UTC(2013,5,5),0.7638],[Date.UTC(2013,5,6),0.7549],[Date.UTC(2013,5,7),0.7562],[Date.UTC(2013,5,9),0.7574]]";
    var j = JSON.stringify(x);
    console.log(j);
    //"[[Date.UTC(2013,5,2),0.7695],[Date.UTC(2013,5,3),0.7648],[Date.UTC(2013,5,4),0.7645],[Date.UTC(2013,5,5),0.7638],[Date.UTC(2013,5,6),0.7549],[Date.UTC(2013,5,7),0.7562],[Date.UTC(2013,5,9),0.7574]]"
  • Как правильно сформировать данные в формате json?

    @Abcdefgk
    Евгений Иванов, Я ж вам в основном ответе сделал из куска вашей же строки JSON.
    Могу из другой:
    var x = [
    [Date.UTC(2013,5,2),0.7695],
    [Date.UTC(2013,5,3),0.7648],
    [Date.UTC(2013,5,4),0.7645],
    [Date.UTC(2013,5,5),0.7638],
    [Date.UTC(2013,5,6),0.7549],
    [Date.UTC(2013,5,7),0.7562],
    [Date.UTC(2013,5,9),0.7574]
    ];
    var j = JSON.stringify(x);

    В переменнойj - настоящая, стопроцентная json-строка.
    console.dir(j);
    // '[[1370131200000,0.7695],[1370217600000,0.7648],[1370304000000,0.7645],[1370390400000,0.7638],[1370476800000,0.7549],[1370563200000,0.7562],[1370736000000,0.7574]]'
  • Как правильно сформировать данные в формате json?

    @Abcdefgk
    Нопремер код ["трололо", "1111"], ["пека", "222"] - не формат JSON.
    А нопремер код [["трололо", "1111"], ["пека", "222"]] - формат JSON.

    Формат JSON - это тупо строка. Но правильно структурированная - так структурированная, чтобы из неё после преобразования в объект можно было безошибочно вынимать данные. А есть там кавычки или нет - дело десятое.

    Пишите на лучшем в России языке PHP? - значит, любите таблицы. Вот вам пример обычной советской таблицы в формате JSON:
    [ { "a": 12, "b": 38, "c": 345},
      { "a": 97, "b": 48, "c": 85},
      { "a": 56, "b": 2, "c": 934}]

    Не похоже?
  • WebSocket для react/redux приложения?

    @Abcdefgk
    ch-aqwer, О! Какая мне проблемка маленькая в голову пришла! Но я сразу же и проверил (а чё мне ещё делать?)
    Процесс setInterval запускается каждый раз, снова - ещё один, при каждом новом коннекте. В результате скорость, получается, увеличивается в два раза при втором клиенте... и т.д.
    Надо иметь переменную таймера и - при каждом коннекте - предыдущий запуск сетИнтервала выключать. Работает.
  • WebSocket для react/redux приложения?

    @Abcdefgk
    ch-aqwer, Ну раз данные берутся из базы, то их всё равно же запрашивать периодически. Так что, в чём вопрос-то? Если бы мне это нужно было делать, то я попробовал бы так. Была бы отдельная (видимо, промисифицированная) функция в виде отдельного модуля. Пусть бы она делала запрос к базе, обрабатывала бы чего там с данными надо делать и возвращала Promise с готовой к отправке json-строкой, а тут бы только оставалось отослать результат. Конструкция в этом модуле выглядела бы как-то так:
    setInterval(function() {
      require('getModule').getData()  // запускаю там запрос
               .then( dataString => {
                  for (var key in clients) {
                    clients[key].send(dataString);
                  }
                })
                .catсh( err => {/* Не знаю чего тут */})ж
    }, 5000);

    Ну и посмотрел бы, чего из этого выйдет.
    В любом случае, сбросить эти запросы на сервер всяко лучше, чем делать их с клиента.
    Как-то... и весь "серверочек" этими двумя файлами исчерпывается (ну, если не считать сторонние модули, которые им потребуются - собсно вебсокета и драйвер базы).
  • WebSocket для react/redux приложения?

    @Abcdefgk
    ch-aqwer, Как видеопоток что ли? Он откуда будет идти?
    Ну и вообще, для приёма данных бразузером в одностороннем порядке есть это https://learn.javascript.ru/server-sent-events
    Там, я поглядел, у Кантора пример, и сервер "поток" отправляет тем же setInterval.
  • WebSocket для react/redux приложения?

    @Abcdefgk
    Хе. Ну я вот для экскримента сделал два файла и просто запустил их из двух терминалов. На типа сервере вот такая конструкция
    setInterval(function() {
      for (var key in clients) {
        clients[key].send('Hello, World!!!');
      }
    }, 3000);

    отправляет мессадж
    А типа клиент каждые три секунды его получает.5a01865da3607162670786.jpeg
    Не сложная ноука.
  • WebSocket для react/redux приложения?

    @Abcdefgk
    Да какой там алгоритм, всё просто.
    WebSocket в браузерах нативный. На странице просто есть скрипт подключения с адресом и портом в аргументе, типа var socket = new WebSocket("ws://site.ru:8081");
    Порт любой, от фонаря - главное, что он тот же, который слушает и WebSocketServer на том конце:
    var WebSocketServer = new require('ws');
    var webSocketServer = new WebSocketServer.Server({
      port: 8081
    }, function() {console.log('ws-PORT = 8081')});

    Как страница открывается в браузере - скрипт подключается к серверу и просто ждёт. Когда сервер что-то отправит, будет сгенерировано событие
    socket.onmessage = function(event) {
      var incomingMessage = event.data;
      // тут делаем с тем что пришло - что хотим
    };

    Отправлять можно хоть строку (json-строку в том числе, конечно), хоть бинарный поток (в отличии от socket.io, где только строку).
    Вот и весь "алгоритм".

    А сервер данные отправляет простым методом ws.send()
    Если нужно отправлять нескольким (многим) клиентам, то надо "руками" их перебирать в цикле. У "чистого" WebSocket нет функции рассылки всем подключившимся.
    У socket.io есть готовая broadcast
  • WebSocket для react/redux приложения?

    @Abcdefgk
    ch-aqwer, Да я же не знаю точно задачу. Вебсокет был бы нужен, если есть задача частично освободить клиентскую часть - чтоб клиенты только принимали пакеты данных, а сами запросов не делали. Пришёл типа json - разпарсить его только и поприменять по конечному назначению. Может быть так, я не знаю.
    А если нодовскому серверу нужно отправлять запросы за сырыми данными, то он их всё равно будет делать через такой же setInterval.
  • WebSocket для react/redux приложения?

    @Abcdefgk
    "Другой ресурс" данные сам отдаёт или надо делать запросы?
    Если сам не отдаёт, то setInterval всё равно же останется - только что сбросить это на сервер: пусть запрашивает, обрабатывает и отправляет.
    Не совсем понятно.
  • Как вывести html страницу в другом html документе?

    @Abcdefgk
    Stalker_RED, Ну не важно, работает же. Библиотека - и библиотека, ничем не хуже модных реактов-ангуляров (по поводу которых все кипятком писают).
  • Как вывести html страницу в другом html документе?

    @Abcdefgk
    Pavlu4io, Скрипт с библиотекой внутри
    <head>
      ...
      <script src="https://www.w3schools.com/lib/w3.js"></script>
    </head>

    и скрипт <script>w3.includeHTML();</script> внизу документа - всё инклудится, ибо это есть стандартный стандарт.
  • Где разница между статическими функциями и фабричными?

    @Abcdefgk
    JackShcherbakov, Но вот выше человек ещё правильно отметил. "Экземпляр" создаётся внутри "фабричной функции". Существенный момент.
  • Где разница между статическими функциями и фабричными?

    @Abcdefgk
    JackShcherbakov, Хе. Это я ещё не использовал слова "сигнатура" и "арность".
  • Как этот код переписать с Delphi на JS?

    @Abcdefgk
    Не знаю, я его тоже первый раз вижу.
  • Есть ли смысл использовать typescript на node.js бэкэнде?

    @Abcdefgk
    Хе. Если спросить у человека - профана в музыке, какой из музыкантов больше музыкант - тот, который играет на флейте, или тот, который играет на рояле? - то он ответит, что, конечно, тот - который на рояле: он и звуков одновременно больше производит, да и инструмент у него с педалями. Но настоящие-то музыканты знают, что ни размер инструмента, ни характер извлечения из него звуков в этом смысле не значат ничего - важны для оценки совсем другие критерии.
    Если спросить у человека, мало что понимающего в искусстве программирования, какой программист настоящий: тот, который пишет на Objective C, или тот - который на FoxPro, - то он, понятно же, ответит, что настоящий пишет на Objective C - ведь это основной язык в компании Apple. Однако сами-то, владеющие искусством кода программисты, знают: язык не имеет в этом смысле значения.
  • WebSocket идентификация каждого соединения, как?

    @Abcdefgk
    Илья Герасимов, Он же, вроде бы, про WebSocket спрашивает, а не про socket.io. Ну в общем, мне всё равно. Это как-то мудрёно для меня.
  • WebSocket идентификация каждого соединения, как?

    @Abcdefgk
    Илья Герасимов, WebSocket - это какбэ другой протокол, вообще-то. Он к request-response не имеет отношения чуть менее, чем полностью.
  • WebSocket идентификация каждого соединения, как?

    @Abcdefgk
    Erixx, Это и есть тот самый механизм.
    В socket.io он уже вписан, готовенький, а с WebSocket его самому надо в три строчки напейсать, типа:
    var clients = {};
    ...
    WebSocketServer.on('connection', function(ws) {
      var id = Math.pandom();
      clients[id] = ws;
    ...

    А вот почему оно дальше работает - я, ей богу, не понимаю. Но работает. На дальнейшее
    ws.on('message', function(msg) {
      console.log('клиент ' + id);
      ...

    Оно удивительным образом показывает правильный айдишник - именно этого сокет-соединения. Как угадывает? - вот бы кто объяснил.