0

Я работаю над приложением, которое использует window.EventSource для потоковой передачи данных в виде таблицы. Поскольку ограничение max-connections-per-server ограничено как 6, я пытаюсь иметь один объект EventSource в определенный момент времени, поэтому в принципе мне нужно закрыть первый объект sourceource во втором onopen-методе второго а затем второе событие onmessage будет передавать данные в представление таблицы. Рассмотрим приведенный ниже код работает на событие OnClick,Закрыть first eventsource on on one one onen method

if(firstEventSource) { 
    firstEventSource.close(); 
} 
var firstEventSource = new window.EventSource(endPoint); 
firstEventSource.onmessage = function (evt) { 
    //... code goes here 
} 

Приведенный выше код работает, но, как я уже говорил, а не закрытие firstEventSource напрямую, мне нужно, чтобы закрыть его, убедившись, что второй источник событий открыл это соединение.

+0

Максимальное количество подключений на сервер - это максимальное количество соединений, которые браузер может сделать на сервере. Я не вижу в вашем вопросе, как вы туда попадаете? Почему вы не можете использовать один «EventSource»? – baynezy

+0

@baynezy, когда я говорю max соединений, это максимальное количество активных соединений. Как я упоминал в запросе, у меня есть эта функция внутри обработчика события onclick, а затем, если я собираюсь создать новый объект window.EventSource для каждого клика, тогда он не позволяет мне идти больше 6. «endPoint» здесь будет потоковым данные непрерывно с сервера. – Sai

ответ

0

Не используйте несколько EventSource. Используйте один и использовать названные события вместо http://cjihrig.com/blog/the-server-side-of-server-sent-events/

Таким образом, создать EventSource, а затем сделать вызов API к серверу OnClick изменения конфигурации единого EventSource.

+0

спасибо за обмен URL. В моем сценарии у меня есть эта конечная точка, где мне нужно добавить к ней запрос из текстового поля, что-то вроде этого: var firstEventSource = new window.EventSource (endPoint + '? LastEventId = 0 & s =' + $ scope.values); где $ scope.values ​​- это массив ... так что просто интересно в этом случае, если я собираюсь использовать один EventSource, а затем, если мне нужно изменить его конфигурацию (в данном случае конечную точку). как я могу это сделать ... любые примеры окажут большую помощь. – Sai

+0

Итак, я имею в виду, что у вас есть один EventSource, но вы вызываете AJAX-вызовы на свой сервер, они могут включать в себя параметры запроса, которые вы упомянули. Используйте это, чтобы изменить поведение того, что делает существующий EventSource с этой точки. Нет никакой ценности в постоянном уничтожении и создании соединений. – baynezy