Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
IM DIY
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
cngump
May 06, 2013
Programming
260
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
IM DIY
即时聊天DIY
cngump
May 06, 2013
More Decks by cngump
See All by cngump
iOS开发中的MVC
cngump
2
1.8k
构造基于Coretext的排版引擎
cngump
1
480
Mac OS APP 的沙盒和相关审核技术
cngump
0
580
基于Xamarin 2.0的跨平台移动开发
cngump
0
150
Other Decks in Programming
See All in Programming
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
580
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.5k
What's New in Android 2026
veronikapj
0
250
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
420
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
460
プロポーザルを書いてもらう
pvcresin
0
280
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
180
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
540
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
源内ハンズオン概要編
hideg
0
120
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
670
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.4k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Deep Space Network (abreviated)
tonyrice
0
250
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Building Adaptive Systems
keathley
44
3.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
670
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Crafting Experiences
bethany
1
240
Code Reviewing Like a Champion
maltzj
528
40k
Rails Girls Zürich Keynote
gr2m
96
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Transcript
通信聊天DIY 如何為我的應⽤用增加⼀一個IM功能? @Harry吳卓強 http://weibo.com/harryng
[email protected]
13年5月6⽇日星期⼀一
My Experience... • Enterprise IM • IM on Cloud •
Customer Service Solution 13年5月6⽇日星期⼀一
Why IM? • 企業內部通信 • 客⼾戶服務 13年5月6⽇日星期⼀一
Did you use? • XMPP • Socket.io • TowTruck •
Faye • Red5 • Many more... 13年5月6⽇日星期⼀一
XMPP 13年5月6⽇日星期⼀一
XMPP • known as Jabber • XML • TCP /
HTTP(s) • Mainly Java-based servers 13年5月6⽇日星期⼀一
13年5月6⽇日星期⼀一
XMPP 13年5月6⽇日星期⼀一
XMPP 13年5月6⽇日星期⼀一
XMPP • Too much resources • Relies on commercial solutions
• Cost is high 13年5月6⽇日星期⼀一
Socket.io 13年5月6⽇日星期⼀一
Socket.io • JSON • Light weight • WebSocket • FlashSocket
• Long Polling 13年5月6⽇日星期⼀一
Socket.io • Client Side: Multi-platforms • Server Side: Node.js •
Compatible: • Recent Browsers • Libraries 13年5月6⽇日星期⼀一
Pub/Sub • Publish / Subscribe • Chat Room style 13年5月6⽇日星期⼀一
Socket.io on iPhone • DEMO 13年5月6⽇日星期⼀一
Good? Bad? • Goods: • Simple • Low Traffic •
Bads: • New 13年5月6⽇日星期⼀一
XMPP (Jabber) Socket.io Data Format Web Technologies Technology History Users
Scalability Features Setup XML JSON TCP HTTP HTTPS Polling Long-polling WebSocket FlashSocket jsonp-polling Java (OpenFire) Node.js 1999 2009 AOL (2008) Facebook (2010) Microsoft (2011) Skype (2011) Microsoft (2011) Linkedin (2012) Yahoo! (2012) Walmart (2012) Multiple nodes Nginx HA Proxy event stream security non-blocking event-driven Jabber Server Node.js server 13年5月6⽇日星期⼀一
Summary • Setup is NOT easy!! • Use 3rd-party Service!!
13年5月6⽇日星期⼀一