+ All Categories
Home > Technology > Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Date post: 27-Nov-2014
Category:
Upload: minh-nguyen-vo-cao
View: 1,589 times
Download: 1 times
Share this document with a friend
Description:
 
Popular Tags:
32
Websocket-Chat- Application
Transcript
Page 1: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Websocket-Chat-Application

Page 2: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

WHO AM I?

Minh Nguyen Vo Cao

tech lead @ CENT Technology

koding: minhnvc

Page 3: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

AGENDA

1. Real-time technologies

2. Jetty Embedded

3. WebSocket with Jetty

4. Build a chat application

5. Performance

Page 4: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

CHAT APPLICATIONS

Page 5: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

FIRST: A STORYOn a sunny morning …

The biz girl told you …

“We need to develop a chat application

like Facebook”

Page 6: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

REAL-TIME WEB TECHNOLOIES

Page 7: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Do you have any news for me?

No

Do you have any news for me?

No

Do you have any news for me?

No!!!!@#$%

Page 8: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

AJAX POLLING

• The requested webpage executes JS which requests to server at regular intervals (e.g. 0.5 seconds).

• The server calculates each response and sends it back, just like normal http traffic.

Page 9: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Do you have any news for me?

Here you are!

“#%#$%@@!”

Anything else?

Page 10: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

AJAX LONG-POLLING

• The requested webpage executes JS which requests a file from the server.

• The server does not immediately respond with the requested information but waits until there's new information available.

• The client receives the new information and immediately sends another request to the server, re-starting the process.

Page 11: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Good morning!

You have new message

You have new email

Hey, What are you doing ?

Page 12: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

HTML5 WEBSOCKETS

• The requested webpage executes JS which opens a connection with the server.

• The server and the client can now send each other messages when new data is available.

Page 13: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

POLLING VS LONG-POLLING VS WEBSOCKET

Page 14: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

… Ajax Polling Ajax Long-polling WebSocket

Browser support

Supported by the most of currently

used browsers

Supported by the most of currently

used browsers

IE 10+,… (caniuse.com)

Server-loading

It repeatedly calculates and responses a lot

of requests from clients.

Takes little of CPU resources,

but creates idle processes.

The best possible

solution. No loops, only

take CPU/memory

per client action.

Client-loading

Natively implemented

in the browser

Natively implemented

in the browser

Natively implemented

in the browser

TimelinessCan adjust the

interval settings.

Near real-time True real-time

Page 15: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014
Page 16: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

JETTY EMBEDDED

• Jetty provides a Web server and javax.servlet container plus support for WebSocket.

• Standalone

Page 17: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

WHY ??

Lightweight, mini, pluggable, …

And JAV is awesome!Sorry, JAVA

Page 18: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

CREATE A SERVER

Page 19: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Don't deploy your application in Jetty, deploy Jetty in your application

Page 20: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Your app

HTTP HTTP …

WS WS …

java –jar myapp.jar

Page 21: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

WEBSOCKET WITH JETTY

• Require Java 7

Page 22: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

WEBSOCKET ANNOTATIONS

@WebSocket

@OnWebSocketConnect

@OnWebSocketClose

@OnWebSocketMessage

Page 23: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Chat Application

HTTP/ JSON API

WSfor Global Chat

WSfor Private

Chat

getLatestMsg()

getFriendList()

checkUserStatus()

Page 24: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Global Chat

Chat Application

HTTP/ JSON API

WSfor Global Chat

WSfor Private

Chat

ws://

ABC

ws://

DEF

ws://

XYZ

Page 25: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Make a simple chat (global)

Page 26: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

Private Chat

WSfor Private Chat

ABC (mobile)

ws://?chanel=ABC&session=1

ABC (web)

XYZ

ws://?chanel=ABC&session=2

ws://?chanel=XYZ&session=1

{"ABC":[1,2],"XYZ":[1]}

ws.send(“A

BC||Chao ban!”)

;

ws.send(“XYZ||hi!”);

Page 27: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

DEMO PRIVATE CHAT

Page 28: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

FRIEND-LIST & STATUS

Chat Application

HTTP/ JSON API

ABC

User sessions

{"ABC":[1,2],"XYZ":[1]}

Page 29: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

ONLINE - OFFLINE

Chat Application

WS for Private Chat

ABC

DEF

XYZ

XYZ is offline

XYZ is offline

Page 30: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

PERFORMANCE !?

Page 31: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

ONE MORE THING

• Your application feel like a Superman, if all your data is located on the memory (Local Caching is the best solution).

• And don’t read HDD too much.

Page 32: Creating a WebSocket-Chat-Application with Jetty Embedded - Techcamp 2014

THANK YOU!


Recommended