Да это так и должно быть — смотри мой коммент ниже со ссылкой на доки ноды. Нужно слушать событие 'upgrade'.
Пришлось пойти посмотреть в исходники engine.io, чтоб понять, что он делает. Потому что там это точно работает.
Emitted each time a client requests a http upgrade. If this event isn't listened for, then clients requesting an upgrade will have their connections closed.
т.е. callback на http.createServer не вызывается для этого запроса?
а что же происходит с соединением?
вообще это явно HTTP запрос, он не может его просто сбрасывать.
если не может обработать должен выдать код ошибки.
повторюсь я не пробовал с TLS, но по идее на момент апгрейда протокола, безопасное соединение уже установлено и сертификат подтверждать не нужно.
Повесить на один порт с помощью NodeJS можно, я думаю.
Естественно для WebUI это будет прокси, точнее больше похоже на проброс порта.
Вот тут, например, обсуждается вариант. И то не самый лучший. Можно не делать редиректы, просто пайпить и все.
Нужно не канистру а леечку (воронку).
Конструкцию уж додумайте как-то.
В леечку булькнул, подождал 10 сек. если все ок, наливаешь дальше. Если не ок. Идешь «варить воду».
Заодно и из подозрительных канистр проверять удобнее будет.
Но если приложение огромное, то загрузка по частям наоборот комфортнее, чем загрузка сразу всего.
С require можно сделать и так и так и смешанный вариант — т.е. объеденить несколько модулей и загружать их кусками, а browserify альтернативы не дает.
нельзя сделать подгрузку модулей по необходимости, имеется ввиду загрузку приложения по частям
в том числе нельзя сделать асинхронную подгрузку модулей.
Собирается за 3-4 часа.
Пока не смог побороть Web Audio API. Не хочет работать.
Ну соответственно и аудио теги не работают.
При этом ошибок при сборке с этой стороны вроде не показывает.
Где то что то не так с настройками сборки. Потому что в хромиуме, который в убунте уже был все работает.
Нет не работает, мне он предлагает только TVP и VLC.
И я немного соврал — IPTV плеер не предлагает выбрать проигрыватель при выборе канала, у него просто есть своя настройка, какой плеер использовать. Причем список плееров не соответствует тому, что установлено в системе. Но MX там есть и работает.
И браузер мне в том числе и MX предлагает использовать для видео.
Возможно просто MX не регистрирует себя как обработчик URL для multicast UDP, но проигрывать он их умеет или IPTV плеер умеет их для него готовить.
Да в исходниках нашел ссылку на эту статью в Википедии. Youtube можно попросить отдавать только аудио трек. Это не документированная возможность.
И кстати он не информацию об исполнителе берет, а именно ищет через iTunes и LastFm. Т.е. его каталог это каталог iTunes + LastFm + их поиск.
Потом по тайтлу и артисту ищет в ютубе и, если нашлось, то играет.
Интересно пошел искать сервис от youtube для раздачи музыки и не нашел. ну нашел только бесплатные треки для озвучивания.Т.е. это скорее всего хак вокруг youtube API.
Можно попробовать node-webkit отдельно поставить. HipHop на нем работает и даже не упакован. Кстати фактически само приложение это 19кб минимизированного JS кода. Остальное — 4 nodejs модуля, пара картинок и стилей.
Если в цикле развертывания есть этап компиляции (что довольно часто встречается для JS и не только для серверного), то генерация парсера из грамматики вообще не проблема. Считаем исходником грамматику и все.
Если вам просто нужен парсер и нет желания упражняться в его написании, то лучше воспользоваться генератором. Тем более, что часто можно найти готовую грамматику. Ссылка на один из генераторов. Кстати, я им пользовался не совсем по прямому назначению. Обычно парсеры используют для чтения неких документов. У меня же было формализованное описание некого API, описав грамматику я получил сначала парсер для описания, а при помощи парсера получил генератор кода для работы с API.
Пришлось пойти посмотреть в исходники engine.io, чтоб понять, что он делает. Потому что там это точно работает.
а что же происходит с соединением?
вообще это явно HTTP запрос, он не может его просто сбрасывать.
если не может обработать должен выдать код ошибки.
Повесить на один порт с помощью NodeJS можно, я думаю.
Естественно для WebUI это будет прокси, точнее больше похоже на проброс порта.
Вот тут, например, обсуждается вариант. И то не самый лучший. Можно не делать редиректы, просто пайпить и все.
в socket.io клиент стучится на
http://address:port/socket.ioи просит апгрейд протокола до WS
С TSL не пробовал но HTTP -> WS socket.io так и делает.
Конструкцию уж додумайте как-то.
В леечку булькнул, подождал 10 сек. если все ок, наливаешь дальше. Если не ок. Идешь «варить воду».
Заодно и из подозрительных канистр проверять удобнее будет.
С require можно сделать и так и так и смешанный вариант — т.е. объеденить несколько модулей и загружать их кусками, а browserify альтернативы не дает.
нельзя сделать подгрузку модулей по необходимости, имеется ввиду загрузку приложения по частям
в том числе нельзя сделать асинхронную подгрузку модулей.
Вот инструкция:
gist.github.com/xdenser/ba4454f79d4438d7f2f2
Собирается за 3-4 часа.
Пока не смог побороть Web Audio API. Не хочет работать.
Ну соответственно и аудио теги не работают.
При этом ошибок при сборке с этой стороны вроде не показывает.
Где то что то не так с настройками сборки. Потому что в хромиуме, который в убунте уже был все работает.
И я немного соврал — IPTV плеер не предлагает выбрать проигрыватель при выборе канала, у него просто есть своя настройка, какой плеер использовать. Причем список плееров не соответствует тому, что установлено в системе. Но MX там есть и работает.
И браузер мне в том числе и MX предлагает использовать для видео.
Возможно просто MX не регистрирует себя как обработчик URL для multicast UDP, но проигрывать он их умеет или IPTV плеер умеет их для него готовить.
а MX он мне не предлагает выбрать
IPTV плеер например предлагает
И кстати он не информацию об исполнителе берет, а именно ищет через iTunes и LastFm. Т.е. его каталог это каталог iTunes + LastFm + их поиск.
Потом по тайтлу и артисту ищет в ютубе и, если нашлось, то играет.