Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript, быстрое сетевое взаимодействие. / 25 сообщений из 32, страница 1 из 2
03.12.2013, 15:56
    #38487609
phasenoisepskcodedcompression
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
Comet не предлагать, ибо это либа, а хочется разобраться в основах. WebSockets тоже не предлагать, ибо Opera и FireFox решили его выпилить (может уже обратно запилили) по причине какой-то там небезопасности (неважно почему, главное что сволочи выпиливают). Raw Sockets только в chrome экспериментальные есть.

Хочется непрерывным потоком получать события с сервера, частота событий - 20 в секунду, например, небольшие 128-байтные json-куски, например.

XMLHttpRequest как для этого использовать не понимаю. Если послать им запрос, то он установит коннект и отправит HTTP-запрос, по факту ответа на который дёрнет твой асинхронный метод. Всё. Если от сервера прилетит что-то ещё, то это будет послано в топку скорее всего: ответ на запрос-то уже пришёл. А если в ответ слать не валидные HTTP, а какие-то json-куски, то javascript не поймёт юмора.

Чё делать-то?
...
Рейтинг: 0 / 0
03.12.2013, 16:04
    #38487633
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
phasenoisepskcodedcompressionЧё делать-то?
Кроме ажакса и сокетов пока ничего нет...
...
Рейтинг: 0 / 0
03.12.2013, 16:07
    #38487641
phasenoisepskcodedcompression
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
krvsaphasenoisepskcodedcompressionЧё делать-то?
Кроме ажакса и сокетов пока ничего нет...
А Comet как реализован? Там же мой вопрос реализован вроде.
...
Рейтинг: 0 / 0
03.12.2013, 16:11
    #38487654
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
Аякс != XMLHttpRequest.
Аякс бывает разный... .
...
Рейтинг: 0 / 0
03.12.2013, 16:11
    #38487655
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
phasenoisepskcodedcompressionА Comet как реализован? Там же мой вопрос реализован вроде.
Если твой серверный язык позволяет его использовать - используй!
http://javascript.ru/AJAX/comet
...
Рейтинг: 0 / 0
03.12.2013, 16:14
    #38487660
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
phasenoisepskcodedcompressionWebSockets тоже не предлагать, ибо Opera и FireFox решили его выпилитьу тебя сильно устаревшие данные.
...
Рейтинг: 0 / 0
03.12.2013, 16:23
    #38487682
phasenoisepskcodedcompression
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
krvsaphasenoisepskcodedcompressionА Comet как реализован? Там же мой вопрос реализован вроде.
Если твой серверный язык позволяет его использовать - используй!
http://javascript.ru/AJAX/comet
Я ж просил его не советовать.
...
Рейтинг: 0 / 0
03.12.2013, 16:24
    #38487684
phasenoisepskcodedcompression
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
Яростный МечphasenoisepskcodedcompressionWebSockets тоже не предлагать, ибо Opera и FireFox решили его выпилитьу тебя сильно устаревшие данные.
Тут написано http://ru.wikipedia.org/wiki/WebSocket (паследний обзадс стотьи). Уже зопелиле абрадно?
...
Рейтинг: 0 / 0
03.12.2013, 16:30
    #38487702
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
phasenoisepskcodedcompressionЯ ж просил его не советовать.
Не используй...
...
Рейтинг: 0 / 0
03.12.2013, 16:33
    #38487712
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
phasenoisepskcodedcompressionЯростный Мечпропущено...
у тебя сильно устаревшие данные.
Тут написано http://ru.wikipedia.org/wiki/WebSocket (паследний обзадс стотьи). Уже зопелиле абрадно?дык нифига себе, 2010 год :)

http://html5test.com/compare/feature/communication-websocket.basic/communication-websocket.binary.html - тут вся правда тм
...
Рейтинг: 0 / 0
03.12.2013, 20:23
    #38488011
JavaScript, быстрое сетевое взаимодействие.
ни на что не претендуя ;)
http://www.rabbitmq.com/download.html - здесь качаешь MQ сервер
https://www.rabbitmq.com/stomp.html - устанавливаешь с поддержкой stomp
http://jmesnil.net/stomp-websocket/doc/ - здесь забираешь stomp.min.js
https://github.com/sockjs/sockjs-client - тут SockJS-client
настраиваешь Rabbit и на странице примерно! так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<script src="http://cdn.sockjs.org/sockjs-0.3.min.js"></script>
    <script src="/scripts/stomp.min.js"></script>
    <script>
        window.onload = function() {
                
            var url     = 'http://127.0.0.1:15674/stomp',
                queue   = '/topic/TEST',
                stomp   = false,
                subs    = false;

            var onConnect = function() {                    
                    subs = stomp.subscribe(queue, onMessage, {});
                    console.log('You are connected!');                    
                },
                onError = function() {
                    console.log('You have an error!');
                },
                onDisconnect = function() {
                    if(subs) {subs.unsubscribe();}                    
                    console.log('See you next time!');
                },
                onMessage = function(msg) {    
                    if(msg.body) {
                        console.log('Got message with body: ' + msg.body)
                    } else {
                        console.log('Got empty message');
                    }
                };

            var btnConnect      = document.getElementById('connect'),
                btnDisconnect   = document.getElementById('disconnect'),
                btnSend         = document.getElementById('send');;
           
            btnConnect.onclick = function() {
                stomp = Stomp.over(new SockJS(url));
                //stomp.debug = false;                
                stomp.connect('guest', 'guest', onConnect, onError, '/');                
            };
            
            btnDisconnect.onclick = function() {
                if(stomp) {stomp.disconnect(onDisconnect);}
            };
            
            btnSend.onclick = function() {
                var msg = encodeURIComponent('Привет');
                if(stomp) {stomp.send(queue, {}, msg);}
            };
            
        };
    </script>


ну и почитать, в зависимости от твоего серверного яп, о его взаимодействии со STOMP!
...
Рейтинг: 0 / 0
03.12.2013, 23:16
    #38488146
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
phasenoisepskcodedcompressionЯростный Мечпропущено...
у тебя сильно устаревшие данные.
Тут написано http://ru.wikipedia.org/wiki/WebSocket (паследний обзадс стотьи). Уже зопелиле абрадно?

даже IE10+ его использует

если откажешься от WebSocket сильно отстанешь....
tomcat предлагает демки с его использованием

я использую и не жалуюсь
...
Рейтинг: 0 / 0
03.12.2013, 23:16
    #38488147
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
phasenoisepskcodedcompression,

Что-то здесь не так с постановкой задачи.
Странное требование - обработка в реальном времени - 20 раз в секунду браузером , да ещё через сеть :))
Ключевую проблему выделил жирным :))

Раз сервер собирается сам отправлять запрос браузеру, значит получатель уже известен,
значит для этого получателя можно результаты событий накапливать в серверный буфер (в файл/БД/и т.д.).

С клиента запрашивать периодически в нужное/удобное для браузера время сразу все 20/100/1000/... результатов.

Вопрос на здравый смысл - зачем гонять сеть 20 раз в секунду, если можно, например, это делать раз в 20 секунд?
...
Рейтинг: 0 / 0
04.12.2013, 01:13
    #38488219
JavaScript, быстрое сетевое взаимодействие.
авторС клиента запрашивать периодически в нужное/удобное для браузера время сразу все 20/100/1000/... результатов.
хм... ну какой смысл мне пытаться оформить билет в кинотеатр, если через двадцать секунд я узнаю, что эти билеты уже кто-то оформляет (или их ВСЕ уже выкупили)?
...
Рейтинг: 0 / 0
04.12.2013, 01:20
    #38488224
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
как-то так...авторС клиента запрашивать периодически в нужное/удобное для браузера время сразу все 20/100/1000/... результатов.
хм... ну какой смысл мне пытаться оформить билет в кинотеатр, если через двадцать секунд я узнаю, что эти билеты уже кто-то оформляет (или их ВСЕ уже выкупили)?делать из браузера аналог биржевого бота - это кретинизм.
...
Рейтинг: 0 / 0
04.12.2013, 02:49
    #38488267
JavaScript, быстрое сетевое взаимодействие.
Почему бы и нет, если технология позволяет!?
...
Рейтинг: 0 / 0
04.12.2013, 02:53
    #38488269
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
как-то так...Почему бы и нет, если технология позволяет!?
это да, я уже поздно узнал из другого топика, что это нужно для опроса сервера танчиков...

по сабжу, у них должно быть api,
а если предполагаемые действия не укладываются в разрешённые, то, имхо, не взлетит,
потому что, чтобы заставить браузер исполнить поизвольный чужой код,
нужно контролировать сервер или быть ацким спецом...
...
Рейтинг: 0 / 0
04.12.2013, 03:38
    #38488272
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
ага, ещё из одного топика Павла узнал, что и сервер свой, то-есть разрабатывает игру сам.
Полезное дело для саморазвития, но такая задача всё-таки не для браузера, это однозначно.
...
Рейтинг: 0 / 0
04.12.2013, 06:51
    #38488296
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
авторС клиента запрашивать периодически в нужное/удобное для браузера время сразу все 20/100/1000/... результатов.

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


зачем по сети гонять запросы, если можно отправить с сервера информацию сразу после изменения её на сервере?
если отказаться от json и прочим xml в пользу split (конечно это возможно не всегда) то кпд канала возрастает, websocket очень экономит трафик.
...
Рейтинг: 0 / 0
04.12.2013, 08:28
    #38488317
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
как-то так...оформить билет в кинотеатр
Для таких целей нужно использовать вебсокет?
...
Рейтинг: 0 / 0
04.12.2013, 08:29
    #38488319
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
как-то так...Почему бы и нет, если технология позволяет!?
no comment...
...
Рейтинг: 0 / 0
04.12.2013, 08:53
    #38488331
JavaScript, быстрое сетевое взаимодействие.
авторДля таких целей нужно использовать вебсокет?
15235080 - серьёзно?
...
Рейтинг: 0 / 0
04.12.2013, 09:26
    #38488354
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
как-то так... , оформить билеты в кинотеатр можно простым запросом на сервер...
...
Рейтинг: 0 / 0
04.12.2013, 09:36
    #38488363
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
krvsaкак-то так...оформить билет в кинотеатр
Для таких целей нужно использовать вебсокет?

а почему нет?

можно видеть в реальном времени заполнение/занятие мест в зале.
намного проще чем с прочими технологиями.
...
Рейтинг: 0 / 0
04.12.2013, 09:48
    #38488378
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript, быстрое сетевое взаимодействие.
вадяа почему нет?
Даже не знаю, что и ответить...

вадяможно видеть в реальном времени заполнение/занятие мест в зале.
Это ооочень важно для меня, как клиента.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript, быстрое сетевое взаимодействие. / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]