1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.websocket.common;
20
21 import java.net.URI;
22
23 import org.eclipse.jetty.websocket.common.events.EventDriver;
24 import org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver;
25 import org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver;
26 import org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope;
27
28
29
30
31 public class WebSocketSessionFactory implements SessionFactory
32 {
33 private final WebSocketContainerScope containerScope;
34 private final SessionListener[] listeners;
35
36 public WebSocketSessionFactory(WebSocketContainerScope containerScope, SessionListener... sessionListeners)
37 {
38 this.containerScope = containerScope;
39 if ((sessionListeners != null) && (sessionListeners.length > 0))
40 {
41 this.listeners = sessionListeners;
42 }
43 else
44 {
45 if (this.containerScope instanceof SessionListener)
46 {
47 this.listeners = new SessionListener[] { (SessionListener)containerScope };
48 }
49 else
50 {
51 this.listeners = new SessionListener[0];
52 }
53 }
54 }
55
56 @Override
57 public boolean supports(EventDriver websocket)
58 {
59 return (websocket instanceof JettyAnnotatedEventDriver) || (websocket instanceof JettyListenerEventDriver);
60 }
61
62 @Override
63 public WebSocketSession createSession(URI requestURI, EventDriver websocket, LogicalConnection connection)
64 {
65 return new WebSocketSession(containerScope, requestURI,websocket,connection,listeners);
66 }
67 }