1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.websocket.jsr356;
20
21 import java.net.URI;
22 import java.util.concurrent.atomic.AtomicLong;
23
24 import org.eclipse.jetty.websocket.common.LogicalConnection;
25 import org.eclipse.jetty.websocket.common.SessionFactory;
26 import org.eclipse.jetty.websocket.common.WebSocketSession;
27 import org.eclipse.jetty.websocket.common.events.EventDriver;
28 import org.eclipse.jetty.websocket.jsr356.endpoints.AbstractJsrEventDriver;
29
30 public class JsrSessionFactory implements SessionFactory
31 {
32 private AtomicLong idgen = new AtomicLong(0);
33 private final ClientContainer container;
34
35 public JsrSessionFactory(ClientContainer container)
36 {
37 this.container = container;
38 }
39
40 @Override
41 public WebSocketSession createSession(URI requestURI, EventDriver websocket, LogicalConnection connection)
42 {
43 return new JsrSession(requestURI,websocket,connection,container,getNextId());
44 }
45
46 public String getNextId()
47 {
48 return String.format("websocket-%d",idgen.incrementAndGet());
49 }
50
51 @Override
52 public boolean supports(EventDriver websocket)
53 {
54 return (websocket instanceof AbstractJsrEventDriver);
55 }
56 }