SockJS имитирует только WS. Соответственно передаются только строки.
Я хочу написать библиотеку, которая даст функционал аналогичный emit() в socket.io, но без использования socket.io. Например, можно будет взять «сырой» торнадо и по вебсокетам делать emit(). Как-то так.
Testling — не тестируется, но я проверял — работает во всех «главных» браузерах.
Я думаю написать простую библиотеку которая даст функционал аналогичный socket.io поверх обычных вебсокетов (или sockjs). Там нет ничего сложного.
Что до поддержки разных браузеров — увы, sockjs тут лучше. Хотя бы потому, что автоматически тестируется при сборке релиза в куче браузеров с помощью http://testling.com.
TornadIO2 забрасывать не собираюсь — баги будут исправляться, но нового функционала точно не будет.
Когда начало «тормозить» — 100%, т.е. одно ядро целиком. А память есть в исследовании, PyPy при 2000 клиентах скушал около 100 мб, тогда как CPython около 55 мб.
WebSocketHandler более низкоуровневый чем соединение tornadio. Из за поддержки всех транспортных протоколов нельзя рассчитывать что всегда будут доступны куки и так далее. FlashSocket нормально работает с WebSocketHandler, но он не умеет передавать куки вообще.
К слову, в TornadIO2 немного улучшилась ситуация с обработкой входящего запроса (куки и строка запроса передаются в on_open вне зависимости от протокола) и, причем, точно знаю одного человека у которого взлетели secure cookie в TornadIO2 (chegivara, он отметился ниже).
Но если нет желания использовать ничего кроме веб сокетов и обратная совместимость не сильно заботит, то можно и не смотреть :-)
Основная идея socket.io — организация push на браузер. Т.е. как бы нет смысла его использовать для других целей, так как есть всякие zeromq, thrift, etc.
Но да, народ написал клиенты для большинства языков. Для питона полноценного клиента нет, но есть пример как можно на коленке сделать свой: stackoverflow.com/q/7586302
TornadIO2 достаточно легковесный, там нет никаких сложных вычислений которые могли бы сильно кушать процессор. А сам Tornado — один из самых быстрых асинхронных серверов для питона. Один сервер сможет вытянуть большое количество клиентов.
Если говорить про горизонтальную масштабируемость — добавляем ZeroMQ или Redis, запускаем ферму, балансируем с помощью haproxy (или dns round robins) и получаем кластер, который вытянет сильно больше чем один сервер.
Кстати, у меня ощущение что деньги даются не просто так, а из некого центра. Короче говоря, этот самый центр и есть контролирующим органом:
1. Он определяет скорость выпуска монеток (до 21 лимона)
2. Он же их выдает
Таким образом, из всей идеи p2p тут только способ оплаты — аналог наличных денег. А так — обычная валюта.
Несколько вопросов:
1. Что мне мешает захакать клиент, что бы он за секунду нагенерил мне миллион монеток?
2. Поскольку клиент чего-то там делает и за это даются деньги, кто мне эти деньги дает? Если никто, то см. пункт 1
3. Если нет контролирующего органа, кто может подтвердить что я их честно «нагенерил»?
Проблема чем-то напоминает сетевые игры — у них тоже проблемы с безопасностью, если протокол обычный p2p. Но в играх на алгоритмическом уровне можно следить за «соседями» (ловить странные действия, которые не вписываются в игровую механику), а как тут контролировать генерацию монеток — вообще без понятия.
На самом деле — ADOM больше нетхака. Существенно больше.
Я много играл в АДОМ и относительно немного (ну, может, с недельку) в НетХак.
НетХак выглядит… проще. Он не настолько сложный и большой как АДОМ. В АДОМе есть outdoor, на котором тоже происходят события. В АДОМе очень много побочных квестов, некоторые из которых весьма забавные. Там же есть всякие интересные зоны, например арена. Кроме того, если не брать endless caves в АДОМ, то локации псевдослучайные — всегда знаешь что спустившить на 2 этажа вниз попадешь в магазин, например.
Умений больше, несколько концовок и т.д.
5yoyPyoy | 6yoysyoy | ^yoydyPy | 8PtYtpYsY | 9yoyPodP |hoPoDPh | Phoao | dagagosg | DosDdyoyPyoy | PtYPpty | IowE| yoyPodP | hdJhzJv
И вообще, гуглите по «Virtual Piano Sheet».
Я хочу написать библиотеку, которая даст функционал аналогичный emit() в socket.io, но без использования socket.io. Например, можно будет взять «сырой» торнадо и по вебсокетам делать emit(). Как-то так.
Testling — не тестируется, но я проверял — работает во всех «главных» браузерах.
Что до поддержки разных браузеров — увы, sockjs тут лучше. Хотя бы потому, что автоматически тестируется при сборке релиза в куче браузеров с помощью http://testling.com.
TornadIO2 забрасывать не собираюсь — баги будут исправляться, но нового функционала точно не будет.
Возможно, конечно, что CIQ подаст в суд, но шансов у них немного.
К слову, в TornadIO2 немного улучшилась ситуация с обработкой входящего запроса (куки и строка запроса передаются в on_open вне зависимости от протокола) и, причем, точно знаю одного человека у которого взлетели secure cookie в TornadIO2 (chegivara, он отметился ниже).
Но если нет желания использовать ничего кроме веб сокетов и обратная совместимость не сильно заботит, то можно и не смотреть :-)
Но да, народ написал клиенты для большинства языков. Для питона полноценного клиента нет, но есть пример как можно на коленке сделать свой: stackoverflow.com/q/7586302
TornadIO2 достаточно легковесный, там нет никаких сложных вычислений которые могли бы сильно кушать процессор. А сам Tornado — один из самых быстрых асинхронных серверов для питона. Один сервер сможет вытянуть большое количество клиентов.
Если говорить про горизонтальную масштабируемость — добавляем ZeroMQ или Redis, запускаем ферму, балансируем с помощью haproxy (или dns round robins) и получаем кластер, который вытянет сильно больше чем один сервер.
1. Он определяет скорость выпуска монеток (до 21 лимона)
2. Он же их выдает
Таким образом, из всей идеи p2p тут только способ оплаты — аналог наличных денег. А так — обычная валюта.
Несколько вопросов:
1. Что мне мешает захакать клиент, что бы он за секунду нагенерил мне миллион монеток?
2. Поскольку клиент чего-то там делает и за это даются деньги, кто мне эти деньги дает? Если никто, то см. пункт 1
3. Если нет контролирующего органа, кто может подтвердить что я их честно «нагенерил»?
Проблема чем-то напоминает сетевые игры — у них тоже проблемы с безопасностью, если протокол обычный p2p. Но в играх на алгоритмическом уровне можно следить за «соседями» (ловить странные действия, которые не вписываются в игровую механику), а как тут контролировать генерацию монеток — вообще без понятия.
Я много играл в АДОМ и относительно немного (ну, может, с недельку) в НетХак.
НетХак выглядит… проще. Он не настолько сложный и большой как АДОМ. В АДОМе есть outdoor, на котором тоже происходят события. В АДОМе очень много побочных квестов, некоторые из которых весьма забавные. Там же есть всякие интересные зоны, например арена. Кроме того, если не брать endless caves в АДОМ, то локации псевдослучайные — всегда знаешь что спустившить на 2 этажа вниз попадешь в магазин, например.
Умений больше, несколько концовок и т.д.