This repository has been archived by the owner on Apr 25, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 75
/
Copy pathEventClient.java
72 lines (61 loc) · 2.31 KB
/
EventClient.java
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//
// ========================================================================
// Copyright (c) Mort Bay Consulting Pty Ltd and others.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.demo;
import java.net.URI;
import javax.websocket.ContainerProvider;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
import org.eclipse.jetty.util.component.LifeCycle;
public class EventClient
{
public static void main(String[] args)
{
URI uri = URI.create("ws://localhost:8080/events/");
try
{
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
try
{
// Create client side endpoint
EventSocket clientEndpoint = new EventSocket();
// Attempt Connect
Session session = container.connectToServer(clientEndpoint,uri);
// Send a message
session.getBasicRemote().sendText("Hello");
// Send another message
session.getBasicRemote().sendText("Goodbye");
// Wait for remote to close
clientEndpoint.awaitClosure();
// Close session
session.close();
}
finally
{
// Force lifecycle stop when done with container.
// This is to free up threads and resources that the
// JSR-356 container allocates. But unfortunately
// the JSR-356 spec does not handle lifecycles (yet)
LifeCycle.stop(container);
}
}
catch (Throwable t)
{
t.printStackTrace(System.err);
}
}
}