2016-07-21 7 views
1

Я изучаю Sip Servlet, и мне что-то непонятно.Различия между SipApplicationSession и servletContext

с сервером приложений, как mobicents, я мог бы иметь два типа сессии:

  1. SipSession: это сеанс связан с запросом/ответ;
  2. SipApplicationSession: это сеанс, который обертывает SipSession и (в конечном итоге) HttpSession. Это должно использоваться для связи между веб-сайтом и sip-сервлетом.

Почему у нас должен быть второй? Если я позвоню:

getServletContext.setAttribute("something", somethingObject); 

Это разделение с двумя сервлетами, или я не прав?

ServletContext - это то, что обертывает сервлет в приложении, и поэтому мы можем общаться через сервлеты.

Итак, почему мы должны использовать SipApplicationSession?

Спасибо за ответ.

ответ

1

Вы правы в концепции SIPSession и SIPApplicationSession.

Подумайте о SIPApplicationSession как мета-сеансе, удерживая N сеанс SIP (и HTTPSession, если приложение является конвергентным SIP и HTTP-протоколом и использует их). Таким образом, атрибуты в этом могут быть разделены между сеансами SIP, если вы создаете B2BUA (а также WebSession, если вы включаете Web в свое приложение), но он всегда ограничен во времени контексту сеанса SIP и времени сеанса HTTP.

ServletContext, однако, предназначен для жизни приложения и полностью независим от SIP-вызовов или веб-запросов, поэтому вы хотите только добавить туда атрибуты, которые предназначены для жизни дольше, чем это, и что вы не хотите сохранять или хранить в базы данных.

+1

Прежде всего, мне очень приятно, что вам помогает. Я понимаю ваш ответ, и это было так, как я предполагал. Итак, в сценарии B2BUA, например, 3PCC, где есть веб-интерфейс (и, следовательно, HttpServlet), когда я вызываю SipFactory.createRequest (SipApplicationSession ...), я создаю запрос, который принадлежит к его SipSession, и этот SipSession принадлежит SipApplicationSession. – xcsob

+1

Если по какой-то причине мы нажимаем кнопку «зависать», и это дает запрос на получение нашего HttpServlet, это даст ссылку на SipApplicationSession и для каждой SipSession (в SipApplicationSession), например, создаст запрос bye. Спасибо :) – xcsob

+0

Вы получили это правильно. Не стесняйтесь повышать ответ, если это полезно для будущих читателей. – jeand

 Смежные вопросы

  • Нет связанных вопросов^_^