※同じ資料はspeakerdeckにも置いてあります https://speakerdeck.com/toritori0318/tvlian-dong-sabisunoriarutaimutong-zhi-wozhi-eruji-shu テレビ連動サーバ勉強会で発表した資料です http://connpass.com/event/10424/
![TV連動サービスのリアルタイム通知を支える技術](https://cdn-ak-scissors.b.st-hatena.com/image/square/5f7b8b15cbf28da9cfcf9f2835cb1e64a22d9f42/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fpublic-150115083444-conversion-gate01-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
※同じ資料はspeakerdeckにも置いてあります https://speakerdeck.com/toritori0318/tvlian-dong-sabisunoriarutaimutong-zhi-wozhi-eruji-shu テレビ連動サーバ勉強会で発表した資料です http://connpass.com/event/10424/
http://connpass.com/event/10424/ 弊社にて、テレビ連動サービスに特化した勉強会を開催しました。 で、自分も発表してました。 スライドはこちら。 http://www.slideshare.net/tsuyoshitorii5/public-43549341 TV連動サービスのリアルタイム通知を支える技術 from Tsuyoshi Torii 時間配分全然わかってなかったので、(特に後半)かけ足になってしまいました。 申し訳ございません。 デモの辺りの補足 背景 そもそもだいぶ前から 「こういう感じでsocket.ioコンテナ化して自由に上げ下げできると面白いな。 で、実際どうなのかな?実運用できそう?」 ということを考えていました。 そして今回いい機会なので急ぎでプロトタイプ書いてみたところ なんとなく上手くいったのでデモとして公開してみました。 またこの
2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索
Socket.IO 1.0がやっと公開となりましたね。 http://socket.io/blog/introducing-socket-io-1-0/ いろいろと変更がありましたが、なんといってもバイナリデータの対応が嬉しいですね。 今回は試しにそのバイナリデータの送受信を試すために、カメラからの画像をSocket.IOを通して送ってみました。 まず下記のようにブラウザでカメラから映像を取得してバイナリデータを送ります。 Selec All Code:/** * Base64 to Blob * http://jsdo.it/Yukisuke/y9Jv **/ function Base64toBlob(_base64) { var i; var tmp = _base64.split(','); var data = atob(tmp[1]); var mime = tmp[0].
nodeでsocket.io使った通信アプリを書いてて、接続元クライアントのIPやポートをログに出したりしたいと思いました。 調べてみると、socket.io v0.7 では「socket.handshake.address」にIPとポートが保持されているようです。 node.js - socket.io: get client's IP address - Stack Overflow http://stackoverflow.com/questions/6458083/socket-io-get-clients-ip-address var io = require("socket.io").listen(server); io.sockets.on("connection", function (socket) { var address = socket.handshake.add
はじめに Engine.IOのGoalsにWebSocketとロングポーリングの切り替え方式をSocket.IO 0.9から変更するという話が書いてあって、興味深かったのでメモしておきます。 その前に前提知識のメモ。 Engine.IOはSocket.IOと同じ作者が作っている。githubアカウントは https://github.com/LearnBoost 今後リリース予定のSocket.IO 1.0はEngine.IOを利用するようになる。 Engine.IOは基本機能を提供して、Socket.IOはエラー時に再接続したり、multiplexingしたり実際にアプリケーションに必要な基本的な機能が含まれている。Can I use engine without Socket.IO ?参照。 WebSocketとロングポーリングの切り替え方式がSocket.IO 1.0では変わる So
最近socket.ioがメジャーバージョンになって少しかわって 今まで io.sockets.socket(id).json.emit('msg', send_msg); みたいな感じでかけてたのですがsockets (namespace)がsocketメソッドを持たなくなってて、「 あれ特定ユーザ探す方法なくね」って思ってたんだけどドキュメントよんでたら Each Socket in Socket.IO is identified by a random, unguessable, unique identifier Socket#id. > For your convenience, each socket automatically joins a room identified by this id. This makes it easy to broadcast messages
さてさて、東京Node学園 13時限目を開催しました。 今回はSocket.IO v1.0がリリースされたため、それの話をメインに。 後はLTでは、social-cms-backendの話、titaniumの話、gulpの話、chest.jsの話をしてもらいました。 togetterはこちら 東京Node学園13時限目 - Togetterまとめ Socket.IO v1.0 introduction というわけで、自分の発表資料。engine.ioの解説からbinary supportの話、scalabilityの話、socket.io-emitterの話と細かなTipsについて広く浅くをメインに説明しました。 Binary support ってことで、カメラから画像を取得してbroadcastするアプリを作り、それのDEMOをしてみました。 URL公開しておくので、試しにみてみたい方は
Socket.IO 1.0がリリースアウトされました。Socket.IO v1.0が出るといわれてから一年半以上経過しましたが、やっと出ました。Node.jsに関わる方であれば一度はお世話になっていると思います。今回はSocket.IO 1.0の紹介を作者であるGuillermo Rauchがしているので、それを日本語で翻訳して紹介します。 TL;DR 翻訳していたらすごく面白かったのですが、文字だらけですごく長くなってしまったので、最初と最後にまとめを載せました。興味があれば全部目を通してみてください。 モジュール分割が進み、新しくEngine.IOが作られています。これはSocket.IOのトランスポート層のプロトコルを調律する役割を担っているライブラリです。 Engine.IOが行っている処理の一つで、最初に接続できる可能性が高いXHRやJSONPで確立し、websocketにupg
モバイルゲーム 物凄い勢いで勃興したモバイルゲーム業界は、いろいろな課題や問題に直面しながらも巨大化し、今日の時点でのスマートフォン向けゲームの市場へと継承されていきます。 モバイルゲームの歴史 2001 Javaアプリと3Dゲームの登場 Javaが利用できるようになったことにより、ダウンロード型のゲームが供給できるようになりました。 2002 携帯電話端末の大容量化・3D化競争 Java搭載携帯電話端末が登場してからごく僅か1年の間に、アプリのサイズに関しては10倍に広大化し、表現方法も2Dから3Dにシフトし始めました。J-PHONEは『ゼビウス』や『スペースハリアー』などといった昔のアーケードゲームを、ドコモはSIMCITYなどパソコンで世界的規模のヒットを飛ばしたゲームを主力商品としていました。 2003 モバイルゲームの一般化 メモリの制限が厳しいJava仮想マシン上ではなく、OS
しかしその「リアルタイムな情報」を、「PCの前にいるときにPCのブラウザで」しか受け取れないとしたら、そのリアルタイムなパワーが半減してしまいます。スマートフォンやタブレット(以降スマートデバイス)の普及が加速し、「いつでもどこでも手軽に情報に接すること」が当たり前になりつつある昨今、「リアルタイムな情報」をスマートデバイスから送受信することで、さらにリアルタイムWebの可能性が広がるのです。 本記事では、スマートデバイスをSocket.IOのクライアントにする方法について解説します。Tech-Sketchに掲載した元ネタはこちらです。 HTML5とネイティブアプリ 第1回で紹介したSocket.IOのSupported browsersを確認すると、iPhoneやiPadのSafari、AndroidのWebkitなどがサポートされていることが分かります。よって、スマートデバイスのブラウ
AndroidアプリからWebViewなどを介さずにnode.js+Socket.IOと双方向通信するための簡単なサンプルを紹介します。 サーバ側の実装 Androidアプリからnode.js+Socket.IO間で双方向通信するには、socket.io-java-clientというライブラリを使用します。 今回はサーバ側には弊社うえじゅん氏が公開している記事で作ったチャットアプリを使用しますので、まずは以下の記事を参考にチャットアプリを作っちゃってください。 Node + Socket.IO で簡単なチャットアプリの作成 チャットアプリの準備が終わったら、早速Androidアプリ側の準備をしましょう。 Androidアプリの実装 サンプルプロジェクトのダウンロード 今回紹介するAndroidアプリのソースコードをGitHubにあげてあるのでダウンロードしてください。 hakamata/S
Node.js Cluster+Socket.IO+Redisによるリアルタイム通知システム | サイバーエージェント 公式エンジニアブログ
前回は、redisをインストールして生でつかってみました。 今回はnode.jsでredisを利用してみたいと思います。 マルチユーザーのサーバーでのプッシュ配信はSocket.IOが定番ですが、 サーバーが増えた時にある問題が生じます。 例えばサーバーを2つに増やして、サーバーAでブロードキャストしても サーバーBのクライアントでは受信できないのです。 以前の記事で作成したチャットプログラムを例にしてみます。 サーバー側のjs $ cat /home/appadmin/chat/node/chat.js var server = require('http').createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/html'}); res.end('server connected'); })
What is Socket.IO? Socket.IO は複数の通信メカニズムを抽象化することで、 全てのブラウザ、デバイスでリアルタイムアプリを実装可能にするために開発されました。 とても手軽にリアルタイムなアプリを 100% JavaScript で作成可能です。 Server var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); Client <script src="/socket.io/socket.io.js"></script
JavaScript Advent Calendar 2011(Node.js/WebSocketsコース) 22日目です! 急遽参戦!そして初Advent Calendar... Node.jsでのチャットルームの実装にsocket.ioのjoin()を使ってみます。 はじめに socket.ioを利用したチャット機能の実装については サンプルも多く結構簡単に実装が可能です。 ですが、チャットルームの実装方法については情報が少なく やり方がわからなかったので色々調べつつ RoomList, Room, User クラスを自作することで対応を行いました。 ※sample https://github.com/hekyou/socket_io-not-join-sample ですが、、 最近socket.ioにjoinメソッドがあることを知りまして。 これなら簡潔に書けるじゃん... と、思
Express+node.js+socket.ioでシンプルなチャットサイトを作ることはすぐできたけど、 複数チャットを利用する時に必要なチャネル分けみたいに機能がないみたい。 ググってみたけどあまりこれだというのが引っかからなかったのでクラスを少しいじって対応してみた。 【 やりたい事 】 – クライアントをチャネルに入室~ – チャネルら入室しているメンバーにのみメッセージ送信 /*********************************************************** * Chart ***********************************************************/ var ejs = require('ejs'); var io = require('socket.io'); var port = 3000 var
ようやく、Express3でチャットサンプルを動作させることができたのでメモる。 Express3では、Socket.ioまわりの扱いが変更になっているので注意。 動作環境 OS: CentOS6.3 64bit Node.js: v0.8.12 Express: 3.0.0rc5 Socket.io: 0.9.10 Expressアプリを作成する。 テンプレートエンジンは、ejsを使用する。 # express -e chatdemoapp Socket.IOをインストールする。 # cd chatdemoapp # npm install socket.io 依存関係を解決する。 # npm install -d app.jsを修正してサーバ側を実装する。 app.js var express = require('express') , routes = require('./rou
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く