Chrome Socket API で WebSocket
HTTP Server on Chrome Socket API
で、以下のようにするとサーバが立てられて。
クライアントからアクセスすると HTTP が配信されたりします。
しかし、 何故か accept() が一回しかリクエストを処理できず、
現状一回処理したら立ち上げ直す(= Chrom 再起動?) しかないので、
仕方なく accept() をその都度行わないといけない状況です。
(多分そのうち改善されるんだろうと思います。)
WebSocket Server on Chrome Socket API
ということで、動くか確かめて見たくなったので、
ちょっとやってみました。
ソースはこちらです。
Jxck/ChromeWebSocketServer · GitHub
これを Chrome の Canary でたちあげて、
コンソールから下記を叩くと、
メッセージがやり取りできました。
var ws = new WebSocket('ws://localhost:3000'); ws.onopen = function() { ws.send('hoge'); ws.onmessage = function(e) { console.log('receive', e.data); } }
面倒なんで 4byte 送ったら 4byte 返ってくるだけです。
WebSocket サーバの実装とプロトコル解説 - Block Rockin’ Codes
で書いたコードを移植した感じです。
まとめ
素振りです。特に意味は無いです。
個人的には TypedArray の API より Node の Buffer の方がわかりやすいなぁ。