タグ

WebSocketに関するsabroのブックマーク (23)

  • WebSocket サーバの実装とプロトコル解説 - Block Rockin’ Codes

    intro なんだかんだ WebSocket を使ってるのに、 WebSocket サーバを自分で書いたことが無かったので、RFC も落ち着いてきたここらで、仕様を読みながら実装してみようと思いました。 "WebSocket サーバ 実装" とかでググると、 Socket.IO とか pywebsocket で WebSocket アプリ作って、「WebSocket サーバを実装」みたいなタイトルになってることが多いみたいですが、 (Apache に PHP で HelloWorld して、「HTTP サーバ実装しました」とは言わないよね。) この記事では、 WebSocket プロトコルをしゃべるサーバ自体を実装します。 といっても、全部やるのはちょっと大変だったので、基的なテキストメッセージのやりとりの部分だけやって、エコーサーバができるところまでやりました。 完成版のソースは以下で

    WebSocket サーバの実装とプロトコル解説 - Block Rockin’ Codes
  • WebSocket の動作確認に wscat が便利すぎる件 - tricknotesのぼうけんのしょ

    WebSocket を利用したアプリケーションを作る際に、動作確認が煩雑な場合があります。 サーバ側とクライアント側をどちらも実装する必要があって、「ちょっとこの部分だけ動かしてみたいなぁ」っていうときに、簡単に試す方法があると便利ですよね! そんなときにおすすめなのが、 wscat です。 wscat は、コマンドラインで利用できる WebSocket のサーバ/クライアントで、ws に同梱されています。 ws とは、 Node.js 上で WebSocket を使うためのモジュールで、Socket.IO やengine.io の内部でも利用されている今注目のプロダクトです。 今回は、この wscat の使い方をご紹介します。 対象バージョン ws (0.4.7) インストール Node.js のモジュールなので、 npm でインストールするのが簡単です。 $ npm install -

    WebSocket の動作確認に wscat が便利すぎる件 - tricknotesのぼうけんのしょ
  • こてさきAjax:WebSocketから、これからのWebを予想してみる - livedoor Blog(ブログ)

    WebSocket が、12月12日についにRFCになりました(RFC6455)。テキスト転送だけでなく、バイナリー転送もサポートされ、コネクションをキープするための ping/pongなどコントロールフレームも定義されました。rfcになる過程で様々なバージョンと、その実装系が出ていますので、そこのネゴシエーションの仕組みが入っていたり、以前は割と自由に使えそうだった subprotocolが、IANAにレジストレーションが必要になったりと、なかなかしっかりしたプロトコルに仕上がっている印象です。 さて、今年最後となる、今日のポストでは、このWebSocketにより、今後のWebはどうなっていくのかについて、僕が最近感じている妄想を書き連ねてみます。 WebSocketとは、いったい何なのか? さて、WebSocketとは、いったい何なのでしょうか?この問に対して、一般的には、 WebでP

  • "リアルタイム Web" に関するプラクティスのアウトプット - Block Rockin’ Codes

    追記 11/12/26 MLのスレッドへのリンクが間違っていたので修正。 introduction WebSocket なんかをつかって、従来のステートレスな処理以外に、コネクションを継続するステートフルな処理が可能になりました。 これを利用すると、これまで実装が難しかったリアルタイムな表現を Web に持ち込むことができます。 そして、 WebSocket を用いたプログラムを作成する上で、Node.js と Socket.IO を用いる方法について、 今年はこのブログでも何度か紹介してきました。 今日は今年一年の集大成として、自分が色々試しながら得たリアルタイム Web に関する知識、技術などを、 ここにまとめてアウトプットしたいと思います。 今回お話しするのは、 東京Node学園 3時限目 : ATND で発表した下記内容の抜粋です。 Node Academy | "About Sl

    "リアルタイム Web" に関するプラクティスのアウトプット - Block Rockin’ Codes
  • Google ChromeをWebSocketで制御する - 箱入りあじゃらの日記

    JavaScriptJavaScript Advent Calendar 2011 (Node.js/WebSocketsコース)の6日目。初参加です、緊張します。WebSocketネタということで、ChromeのWebKit Remote Debugging Protocolを使ってWebSocketでGoogle Chromeを操作する小ネタ。手順1.リモートデバッグを有効にしてChromeを起動Chromeの起動オプションに--remmote-debugging-portを付加してリモートデバッグを有効にする。 $ chrome --remote-debugging-port=9222 2.タブ一覧を取得今回はコントロールする側(Chrome)とされる側(node)が同一ホストで動いてるものとします。http://localhost:9222/jsonをGETで叩くとChromeのタ

  • WebSocketを使ってWebブラウザ間P2P通信をしてみた - いろいろな何か

    はじめに ブラウザ間でP2P通信が実現できれば、ブラウザ上で動作するP2Pアプリが作れて面白そうだなーと思ったのでWebSocketを使って実現してみました。仕組みについては以下で説明していきますが、私が実現した方法は限定的で実用性が低く色々と足りない部分もあるので、軽い気持ちで読んで頂けるとありがたいですw 仕組みの概要 なぜWebSocketを使うのか 従来、Webサーバとクライアント(Webブラウザ)間で非同期に通信するにはXHR(XMLHttpRequest)を用いてきました。基的にこのXHRは以下の図のように同一ドメインとしか通信できないという制約がありました。*1 しかし、WebSocketのthe Origin-based security modelでは異なるドメインとも通信することが可能になります。WebSocketプロトコルでは、サーバとクライアント間で接続を確立する

    WebSocketを使ってWebブラウザ間P2P通信をしてみた - いろいろな何か
  • ブラウザ + WebSocket で電話する - PARAGRAPHS

    http://tily.no.de/telephone トップページ、部屋とニックネームを決めて開始する http://tily.no.de/telephone/sandbox 手軽に試す用 電話というか音声チャットなんだけど、Flash のマイクでとった音声を WebSocket 経由で送信して、受け取った側では Web Audio API とか Audio Data API とかで再生するというのを作った。Firefox と Chrome で動く。 はずなんだけど、no.de の SmartMachine のスペックが低いせいか、遅延のあるせいか相手側の音声がブツブツ切れて聴こえてしまう…。ローカルではちゃんと音声チャットっぽいことができているんだけど。 なんか色々他の人のコードを使ったり参考にしたりしたので書いておきます。 socket.io サンプルのチャットプログラム デザインと

    ブラウザ + WebSocket で電話する - PARAGRAPHS
  • JavaScript最新動向 〜WebSocket編〜

    Dev fest 2020 taiwan how to debug microservices on kubernetes as a pros (ht...

  • Socket.IOがどれくらいリアルタイムなのかちょっと計ってみた - すぎゃーんメモ

    node.js+Socket.IOでリアルタイムアプリケーションが作れるわけだけど、WebSocket使うにしてもXHR-Polling使うにしてもサーバ経由して通信していれば当然タイムラグはあるわけで、それってどれくらい遅延するものなんだろう? と思っていろんなサーバで試してみた(追記しました)。 測定方法 var server = require('http').createServer(function (req, res) { require('data-section').get('html', function (err, data) { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end(data); }); }); var io = require('socket.io').listen(server);

  • NginxでWebSocketをリバースプロキシする方法

    Nginxをリバースプロキシとして動かし、その後ろでSocket.IOを動作させる方法。nginx_tcp_proxy_moduleを使用。 WebSocketのサーバーををリバースプロキシサーバーの後ろで動作させるためには、そのリバースプロキシサーバーがHTTP 1.1のUpgradeを適切に扱ってくれる必要があります(捨てたりしないこと)。Nginxはしばしばリバースプロキシとして使用されますが、nginxのproxy_passディレクティブはそのままではwebsocketの接続を期待通りに扱ってくれません。yaoweibinさんが一般的なtcp接続をリバースプロキシするためのモジュール、nginx_tcp_proxy_moduleを作成してくださっています。このnginx_tcp_proxy_moduleを使用してnginxでwebsocketサーバーをリバースプロキシできるようにし

  • WebSocketでリアルタイム通信

    8/21開催 Chrome+HTML5 Conference@Goolgeの講演資料です。 A presentation for "Chrome+HTML5 Conference" on 2011/8/21 at Google Japna Office.Read less

    WebSocketでリアルタイム通信
  • WebSocketことはじめ

    36. !  ⽣生 // ! var ws = require(“websocket-server”); ! ! var server = ws.createServer();! server.listen(80); // 80 ! ! server.addListener("connection", function(connection){ ! !connection.addListener("message", function(msg){ ! ! !// ! !! ! !server.broadcast(msg);! !}); ! });!

    WebSocketことはじめ
  • WebSocketを使って重い処理の進み具合をリアルタイムにクライアントへ通知する - Csideのダイアリー

    分割が可能な重い処理をサーバー側で実行して、処理の状況の変化をクライアント側で表示させたいとき(プログレスバーみたいなのを作るとき)、どういう方法がいいかちょっと考えてみた。問題は「どうやって処理の進歩状況の情報をクライアントサイドでリアルタイムに受け取るか」ということ。 まず最初に浮かぶのが、分割されたタスクを1つ行うAPIをサーバー側で用意して、クライアント側からJSのsetTimeoutなりライブラリのdeferredなり使って並行リクエストして、コールバックでプログレスバーを書き換える・・・みたいなのが浮かんだ。けれど、PerlにはCoroやAE::HTTPみたいな便利なものがあるし、「折角なので並行処理の制御はあくまでサーバー側でできないか?」と考えていた。 で、次に思い付いたのが、「分割されたタスクが1つ終わるたびにサーバー側からクライアント側に情報をpushする」こと。これを

  • そろそろnode.jsについて一言書いておくか | KRAY Inc

    はじめに 毎年サーバーサイドJavaScriptが流行ると言ってるみなさんこんにちはダニーです。 ということで、node.jsをはじめてみました。 Twitter Streaming APIで取得したデーターをWebSocketで 接続したクライアントに出力するデモを作成したので紹介したいと思います。 今回のデモについて 今回作成したデモは node.jsのHttpClinetでTwtter Streaming APIでTwtterからデータを取得して、 node.jsのWebSocket Serverでそのデータを接続してきたWebSocket対応ブラウザに送信するということを やっています。 Twitter Streaming APIで取得できるようにする。 動かすのにhttp-basic-authが必要です。 npm install http-basic-auth streaming

    そろそろnode.jsについて一言書いておくか | KRAY Inc
  • サーバを作りながら学ぶWebSocketプロトコル - みずぴー日記

    WebSocketって何? WebSocketは、Javascriptでサーバとリアルタイム双方向通信をする仕組みです。概要は第1回 WebSocket登場までの歴史:Jettyで始めるWebSocket超入門|gihyo.jp … 技術評論社によくまとまっています。 この記事ではWebSocketサーバを実装しながら、どういうプロトコルかを解説します。サンプルコードはWebSocket Draft 76でechoサーバーを作ってみた - いろいろな何かのものを参考にさせていただいています。ありがとうございます。 ※WebSocketプロトコルは現在ドラフトの段階なので、そのうち仕様が変わる可能性があります。この記事は20111/23時点の情報です。 プロトコル概要 WebSocketで通信を行なうおおまかな流れは次のようになります。 クライアントとサーバの間でハンドシェイクを行ない、接続

    サーバを作りながら学ぶWebSocketプロトコル - みずぴー日記
  • こてさきAjax:WebSocketがデフォルトdisableとなった件 - livedoor Blog(ブログ)

    拙著(「徹底解説 HTML5 APIガイドブック コミュニケーション系API編」)の補足・修正POSTです。 p.24にWebSocketをサポートしているブラウザが記載されていますが、周知の通り、以下のブラウザでデフォルトdisableになりました。 FireFox4 Opera11 ちなみに、執筆以降サポートを開始した iOS4.2.1のsafari は、現状使える状態です。 disableとなった理由は、現状実装されているバージョン(Draft76)にセキュリティ上の脆弱性が見つかったため。脆弱性がFixされた仕様がIETFで固まれば、マイナーバージョンであっても再び対応するとのこと。 http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/ 脆弱性の詳細は、Adamさんのレポートで述べられています。 ただし

  • HTTP と WebSocket でセッションを共有する

    こんにちは、 nodejs.jp の @masahirohです。 JavaScript Advent Calendar の最終日です。クリスマスだけど空気を読まずに Node.js の地味な話をします。ごめんなさい。 さて、 Node.js では Socket.IO を使えば、 WebSocket を使ったアプリケーションを割と簡単に作れるわけですが、これを Web フレームワークと一緒に使う場合、どうやってセッションを共有したらいいんだろう?とふと思いました。ユーザ名とパスワードをメッセージにのせたらいいんですかね? いや、セッション ID をメッセージにのせればいいのかな? うーん・・と思いながら Github をうろうろしていたら SessionWebSocket というアプリケーションを見つけました。セッション管理機能を追加する方法が結構参考になったので、コードリーディングをします

  • WebSocketの現状と技術的課題

    WebSocketの現状と技術的課題:WebSocketで目指せ! リアルタイムWeb(2)(1/2 ページ) 今回はWebSocketを取り巻く技術的課題や、実装状況についてご紹介します。また私たちが開発したサービス「Pusher」についても取り上げます。 WebSocketに関連した技術的課題 前回のWebSocketの紹介を読んでくださった読者のみなさんはWebSocketを試してみたくてたまらないのではないでしょうか。でも少し待ってください。皆さんを脅かす訳ではありませんが、以下の点についても考えなければいけません。 変化し続けるドラフト IETFのドラフトを見てみると、最初のバージョン(00)は2009年の1月に策定されたのが分かります。Chromiumが最初にWebSocketの実装を発表したころのバージョンは66の辺りです。 それからしばらくの間はマイナーチェンジばかりだった

    WebSocketの現状と技術的課題
  • node.js で エコーサーバと簡易コンテンツサーバ - Block Rockin’ Codes

    追記 ここの内容は Socket.IO のバージョンが v0.7 に上がったことで、古くなりました。 v0.7 については Socket.IO API 解説 - Block Rockin’ Codes を参照してください。 文 リアルタイムWebハッカソン : ATND に参加しました。 みなさん websocket を用いて開発する感じで、websocket の実装としては node.js を筆頭に jetty や ChannelAPI の話も聞けてかなり充実したハッカソンだったと思います。 ここで自分は node.js の websocket ライブラリである socket.io をいじってたんですが、 いくつかアプリ書いて、共通するのは以下のような感じだなということで簡単なメモ。 socket.io でエコーサーバ websocket でリアルタイムなアプリとなると、socket.

    node.js で エコーサーバと簡易コンテンツサーバ - Block Rockin’ Codes
  • Mojolicious::Lite で WebSocket を使ったチャットを作る - naoyaのはてなダイアリー

    node.jsの衝撃とWebSocketが拓く未来 (1/2):WebSocketで目指せ! リアルタイムWeb(1) - @IT という記事を読みました。node.js という V8 を用いたサーバーサイド JavaScript フレームワークを使うと簡単にイベント駆動のサーバが書ける、node-websocket-server.js を使うと node.js で WebSocket サーバが実装できる。Ajax による polling や Long Polling などと WebSocket のアーキテクチャ比較といった内容でした。 WebSocket を使うと手軽にサーバプッシュ的なアプリケーションが作れて嬉しいのですが、現時点では、HTTPサーバー側で WebSocket を処理する下地の実装をどう用意するかというところがひとつ課題でしょう。node.js はその回答のひとつとして

    Mojolicious::Lite で WebSocket を使ったチャットを作る - naoyaのはてなダイアリー