
Felix
27.02.2017
17:53:54

Evgeniy
27.02.2017
17:55:30
Подскажите хорошую практику написания API для работы с сервером.

Ҫѐҏӗѫӑ
27.02.2017
17:55:31
даже 5 лет назад уже везде был Function.prototype.bind

Evgeniy
27.02.2017
17:56:02
Сейчас я написал объект который в себе содержит функции для работы

Google

Evgeniy
27.02.2017
17:56:20
Может есть какой хороший пример

Andrey
27.02.2017
20:03:32
ищу свободные уши кто мог бы послушать меня на тему реализации одной фигни...
в общем пишу будильник.

Evgeny
27.02.2017
20:04:04
Тут почти полторы тысячи таких слушателей

Andrey
27.02.2017
20:09:14
хочу чтобы будильник играл с пяти утра до десяти утра...
тут всё просто ...
делаю емиттер и емичу туда события "будильник включён" если время равно
var nowSecondsFromMidnight = (Date.now()/1000)%(60*60*24); // -- кол во секунд с полуночи
var start = (60*60*5) //5 утра
var stop = (60*60*10) //10 утра
if ( nowSecondsFromMidnight > start && nowSecondsFromMidnight < stop ) {
myEmitter.emit('ALARM START');
} else { myEmitter.emit('ALARM STOP'); }
както так
но вот я подумал, а что если я захочу чтобы будильник играл с 22 до 5 утра
и тут такой код не проканает :(
вероятно мне придёт на помощь хранение данных будильника в виде времени старта, и продолжительности.
а уж из продолжительности я смогу вычислить необходимое время остановки будильника.
) вот как обычно . сформулировал мысль и идея сразу пришла в голову )

Evgeny
27.02.2017
20:13:30
Не за что!

Andrey
27.02.2017
20:16:15
я краем носа поглядывал на эту либу https://date-fns.org/ с целью найти в ней частичное решение своей задачки... но Пока не очень нашёл )

Evgeniy
27.02.2017
20:17:09
А почему ты не проверяешь с начала события например 5 утра будильник заиграл и играет пока не наступит 10 утра

Google

Evgeniy
27.02.2017
20:17:29
Так же и 22 вечера заиграл и как только 5 утра остановил
Получать время в часах и сравнивать
Если начал то не проверять дату начала
А ожидать завершения

Andrey
27.02.2017
20:19:02
хм
пытаюсь понять
мне для моей задачи необходимо эмиттить события каждую минуту или чащще...
то есть я должен иметь функцию которая скажет мне точно сейчас именно тот самый промежуток между 22:00 и 05:00 или нет
желательно чтобы функция была чистой... потомучто я планирую что этот будильник должен нормально продолжать работать если выключить ноде-процесс и включить снова

Evgeniy
27.02.2017
20:21:58
Ну в условие добавить если время начала меньше конца то переход через 00
И по другому условию идти
Вообщем просто своё можешь дописать немного

Andrey
27.02.2017
20:22:55
о. Это конечно усложняет задачу. но выглядит тоже хорошим вариантом решения...
пожалуй просто буду сейвить время старта и продолжительность — просто так гибче... я смогу сделать продолжительность более суток без переработки алгоритма..
спасибо за обсуждение!

Evgeniy
27.02.2017
20:24:55
Своё решение всегда лучше ?

Andrey
27.02.2017
20:25:56
я просто не очень ща соображаю как это я буду 24 - 22 + 05 часов детектить .. :)
утро вечера мудренее

Vladimir
27.02.2017
20:26:59
Ну элементарная же задача
Если интервал перескает 00:00 то нужно отдельно рассматривать случай

Google

Evgeniy
27.02.2017
20:27:49
Я про то же итнаписал, что просто отдельная ветка
Но тут ограничение в сутки, а дальше дату вводить
Но это уже не будильник
?

Andrey
27.02.2017
20:33:48
да я о том же... :)) там не будильник а какаято система управления полётами )

yadro
27.02.2017
20:45:00
Ребят, выручайте, задеплоил апликуху на сокетах на heroku. Статик страничка с сокетами работает, но если подключаться на прямую ws://heroku:port не пашет.
в логи ничего не пишет, при подключении
думаю что то тут с cross domain

Nook
27.02.2017
20:50:14
Подсказочка '22:02' < '22:03'

Andrey
27.02.2017
20:52:12

yadro
27.02.2017
20:52:32
попробую

Andrey
27.02.2017
20:54:35

yadro
27.02.2017
20:55:21
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Content-Type');
я сделал, опять же не пашет

Andrey
27.02.2017
20:58:53
а ты из консоли роблвал ?
кинь ссыль позырить )

yadro
27.02.2017
20:59:44
я из консоли и пробую)
что скинуть?

Andrey
27.02.2017
21:00:46
ну ссылку на хероку приложение которое не работает. )) попробуем к нему по сокету приконнектиться
https://devcenter.heroku.com/articles/node-websockets по этому мануалу делал ?

Google

yadro
27.02.2017
21:01:07
https://gomokus.herokuapp.com/
это да
первое что читал
кажется я зря это сделал)

Andrey
27.02.2017
21:04:35
яхз )

yadro
27.02.2017
21:04:41
лол

Andrey
27.02.2017
21:04:58
5.35.124.149

Admin
ERROR: S client not available

Andrey
27.02.2017
21:05:03
да

yadro
27.02.2017
21:05:07
ок

Andrey
27.02.2017
21:05:25
а какой у тя порт вебсокета ?

yadro
27.02.2017
21:06:04
38412

Andrey
27.02.2017
21:07:11
неа, всёравно не хочет... хз тогда..
а вебсокет сервер точно поднят ?
попробуй чтото простенькое типа пактеа node-websocket
а потом уже и сокетио можно ) если ноде-вебсокет заработает

yadro
27.02.2017
21:08:50
ну дак на index.html запросы работают

Andrey
27.02.2017
21:09:43
я делал так
socket = new WebSocket('wss://gomokus.herokuapp.com:38412')
socket.onopen = function() {
alert("Соединение установлено.");
};
socket.onclose = function(event) {
if (event.wasClean) {
alert('Соединение закрыто чисто');
} else {
alert('Обрыв соединения'); // например, "убит" процесс сервера
}
alert('Код: ' + event.code + ' причина: ' + event.reason);
};
socket.onmessage = function(event) {
alert("Получены данные " + event.data);
};
socket.onerror = function(error) {
alert("Ошибка " + error.message);
};
и смотрел чего ответит

Google

Andrey
27.02.2017
21:10:07
ничего не ответило .. ошибка и закрытие соединения

yadro
27.02.2017
21:10:37
а это через ноду?

Andrey
27.02.2017
21:13:16
не
через браузер

Andrew
27.02.2017
21:14:29
всем привет. кто нибудь работал с апи яндекс.директа и яндекс.паспорт? Можно кого нибудь попытать нубскими вопросами немного?

Artem
27.02.2017
21:16:15
А там могут возникнуть какие-то сложности?

Andrew
27.02.2017
21:17:11

Artem
27.02.2017
21:17:59
С директом не работал, к сожалению. По паспорту и деньгам все вообще просто, например

Andrew
27.02.2017
21:19:16
ок. по паспорту вопрос. можно ли с его помощью залогиниться через условное расширение хрома/оперы в яндексе?
ну то есть есть расширение в браузере, которое работает, только если юзер залогинен в яндексе. И если нет - оно предлагает через себя же залогиниться в яндексе, чтобы начать работать

Aleksey
27.02.2017
21:20:48

Nook
27.02.2017
21:32:10
чот мозк не соображает ))
'00:00' > '22:03' // => false
const now = '10:00';
const alarmTimes = [['22:00', '00:30'], ['10:00', '17:00']];
alarmTimes.sort().reduce((alarm, [start, end]) => {
if (start > end) {
return alarm || now <= end || now >= start;
} else {
return alarm || now >= start && now <= end;
}
}, false);

Andrey
27.02.2017
21:35:12
О! ща потесщу
спс

yadro
27.02.2017
21:38:03
OMG работает
просто не надо было порт указывать :DD

Andrey
27.02.2017
21:54:53

Aleksey
27.02.2017
22:33:23
Судя по документации yarn, результат выполнения команд должен быть одиноков:
sudo yarn global add ts-node
sudo npm install-g ts-node
но при выполнеии npm'ом утилита ts-node доступна для запуска, а yarn'ом - нет.
Это я концепцию неверно понял, или создатали пекеджа ts-node какой-то хак npm-специфичный использовали и он в yarn не работает?
*sudo npm install -g ts-node - с пробелом конечно

Andrey
27.02.2017
22:47:24
Может всё дело в неких постинсталл скриптах которые не запускаются из соображений безопасности? А терминал пробовал ребутить? Хотя врятли поможет...