지난 9일 구글 크롬 브라우저는 WebSocket(웹소켓) API를 지원한다고 발표했습니다. 그리고 최근에 Jetty(웹 서버)는 WebSocket을 지원하는 버전을 배포했습니다. 그렇습니다. WebSocket은 브라우저만으로 사용할 수 있는 것이 아니라 웹 서버도 함께 지원되어야 하는 것입니다. 웹 개발자들 사이에서는 HTML5 명세에도 표준으로 자리매김하므로써 다른 브라우저나 웹 서버들이 이를 지원하는 것은 시간문제로 치부하고 있습니다. 이는 곧 Ajax의 혁명으로 다가 올 것이며 기존 웹을 온전한 리얼-타임(실시간)으로 만들어 줄 것으로 기대하고 있습니다. 구글 Wave와 같은 실시간 인터랙션의 웹 애플리케이션들을 어렵지 않게 구축할 수 있게 되는 것이죠. 실제로 Jetty 웹 서버(7.0.1)를 로컬에 설치하고 크롬 브라우저(베타)에서 채팅 예제를 실행해 보았습니다. Comet을 기본으로 사용하는 Jetty 6.x의 것과 비교하면 매우 간결하고 성능도 좋다는 것을 굳이 소스를 확인하지 않아도 알 수 있었습니다. 조만간에 고정 IP에 Jetty를 설치하여 실제로 돌아가는 여러 예제들을 작성해 볼 예정입니다.
if ("WebSocket" in window) {
var ws = new WebSocket("ws://example.com/service");
ws.onopen = function() {
// Web Socket is connected. You can send data by send() method.
ws.send("message to send"); ....
};
ws.onmessage = function (evt) { var received_msg = evt.data; ... };
ws.onclose = function() { ... }; // websocket is closed.
} else {
// the browser doesn't support WebSocket.
}
그렇다면 Comet은 어떻게 될까요? 글쎄요... Comet은 크로스브라우저를 위한 솔루션으로 남게될 가능성이 큽니다. 어찌됐건 매우 흥분되는 일이 아닐 수 없습니다.
Comments
Got something to add? You can just leave a comment.
comet 은 쓰기가 망설여지는데 요건 꽤 갠춘하네요. ㅎ - Jetty와 구글 크롬의 WebSocket 지원 http://firejune.com/1517
from Topsy
comet 은 쓰기가 망설여지는데 요건 꽤 갠춘하네요. ㅎ - Jetty와 구글 크롬의 WebSocket 지원 http://firejune.com/1517
from _web
WebSocket은 브라우저만으로 사용할 수 있는 것이 아니라 웹 서버도 함께 지원되어야 하는 것입니다 라는 것은 무슨 뜻이죠?
reply edit
말 그대로입니다. WebSocket은 HTML5의 명세의 일부분으로 모든 브라우저에서 지원되는 API가 아닙니다. 그리고 http://stackoverflow.com/questions/1530023/html5-websocket-need-server 를 보시면 별도의 Gateway 또는 데몬을 서버에 설치해야 한다는 사실을 알 수 있습니다.
reply edit
Your Reaction Time!