This example show how to register a websocket in the Karaf HTTP Service.
@WebSocket
annotation.The build uses Apache Maven. Simply use:
mvn clean install
On a running Karaf instance, first, you have to install the http
, jetty
and scr
features:
karaf@root()> feature:install http karaf@root()> feature:inistal jetty karaf@root()> feature:install scr
Then, you can install the websocket example bundle:
karaf@root()> bundle:install -s mvn:org.apache.karaf.examples/karaf-websocket-example/LATEST
You can see the websocket registered in the HTTP service:
karaf@root()> http:list ID │ Servlet │ Servlet-Name │ State │ Alias │ Url ───┼─────────────────────────┼────────────────┼─────────────┼────────────────────┼─────────────────────── 92 │ WebsocketExampleServlet │ ServletModel-2 │ Deployed │ /example-websocket │ [/example-websocket/*]
The websocket is available on http://localhost:8181/example-websocket.
You can now register your client (like curl
) on this URL:
curl --include \ --no-buffer \ --header "Connection: Upgrade" \ --header "Upgrade: websocket" \ --header "Host: localhost:8181" \ --header "Origin: http://localhost:8181/example-websocket" \ --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \ --header "Sec-WebSocket-Version: 13" \ http://localhost:8181/example-websocket
Your client will have a Hello World
message on your client every second.