Rev. 2.73

지난 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

언아더 월드(Another World)Eric Chahi씨에의해 개발되어 1991년에 발표한 아주 오래된 게임입니다. 당시 독창적인 그래픽과 부드러운 애니메이션 탄탄한 스토리 등으로 큰 화제를 불러일으켰던 게임입니다. 저 역시도 이 게임에 심취하여 밤잠을 설쳤던 기억을 가지고 있습니다.

Gil Megidish씨는 이 게임의 일부분을 순수 자바스크립트만으로 포팅하는데 성공했습니다. <canvas>요소를 이용하여 그래픽을 표현하고 base64로 데이터들을 처리합니다. 그래픽이 깨지고 음향효과를 구현하지 못한 등의 문제점을 그는 잘 알고 있지만 이것은 단순히 <canvas>요소를 이용한 테스트 케이스 이며 포팅 작업을 끝까지 마무리할 생각이 없다는 의사를 밝혔습니다. 조금 아쉽네요.

Comments

구글 번역 서비스는 문자를 음성으로 들려주는 TTS(Text-To-Speech) 기능을 추가했다고 발표했습니다. 구글 번역 서비스를 사용하다 보면 TTS가 가능한 경우 파란색 스피커 아이콘이 나타나며, 이 버튼을 클릭하여 음성으로 들어볼 수 있습니다. 스피커 아이콘이 나타나는 경우는 영문으로 번역한 결과물을 얻었을 경우이며 한 번에 100개의 문자까지 처리할 수 있습니다. 번역 서비스에 TTS를 적용한 것으로 미루어 볼 때 향후 다국어가 지원될 확률이 높습니다. 이 페이지에서 파이어버그의 Net 패널을 통해 살펴 보면 "http://translate.google.com/translate_tts?tl=en&q=text"로 해당 문자를 전송하고 MP3 오디오 데이터를 응답으로 받아오는 모습을 확인할 수 있습니다.

Weston Ruter씨는 위 주소와 HTML5의 <audio> 요소를 이용하여 웹기반 TTS를 만들었습니다. translate.google.com으로 파일을 수신할 때 요청하는 곳의 정보(referrer)가 전달되면 "404 Not Found"로 응답한다고 하네요. 그리고 <audio>요소는 브라우저마다 처리할 수 있는 데이터 포멧이 다르기 때문에 MP3를 정상적으로 처리할 수 있는 크롬과 사파리 브라우저에서만 제대로 작동합니다. 만약 음성이 재생되지 않는다면, 버튼 옆에 나타난 링크를 새 창으로 열어서 MP3 파일을 직접 다운로드하여 재생할 수 있습니다. 현재 Weston Ruter씨는 WHATWG에 공식으로 TTS API를 만들어 달라고 요청했다고 합니다.

덧. MP3를 지원하지 않는 파이어폭스 브라우저에서는 soundManager2를 이용하여 재생합니다.

Comments