webSoket.ioでwss(ssl通信)を行う方法

3,652 views
Skip to first unread message

developer

unread,
Apr 23, 2014, 5:27:17 AM4/23/14
to node...@googlegroups.com
webSoket.ioでwss(ssl通信)を行う方法が分かりません。

下記を参考にnode.jsでwebsoketの通信処理を作成しています。

通常のwsでは通信ができるのですが、wss(ssl)ではサーバー側がうまくいきません。

クライアントからはhtml5の下記のような記述でwss(ssl)通信を行いたいです。
var wss = new WebSocket('wss://localhost:433/');

サーバー側では下記のような記述でwsの待ちうけは可能なのですが、
wssでの待ちうけはどのように記述すればいいのでしょうか?
var ws = require('websocket.io');
var server = ws.listen(8888, function () {
  console.log('\033[96m Server running at localhost:8888 \033[39m');
});

soket.ioの場合、下記のような記述で証明書のキーなどを設定できるようですが、
websoket.ioの場合の指定方法が分かりません。
var io = require('socket.io').listen(PORT, {
key : fs.readFileSync(SSL_KEY).toString(),
cert : fs.readFileSync(SSL_CERT).toString()
});

尚、soket.ioでやるとクライアントサイドもnode.jsに依存してしまうので、
なるべくwebsoket.ioでサーバーサイドは行いたいです。

後、node.jsのwebsoket.ioのapiリファレンスなどはどこにありますでしょうか?(英文でも)
探し出せませんでした。

以上、長文となりましたが、よろしくお願いいたします。



Shigeki Ohtsu

unread,
Apr 23, 2014, 7:30:07 AM4/23/14
to node...@googlegroups.com
大津です。

attach() を使って https の Server インスタンスを渡してあげれば大丈夫です。
サンプルコードを以下に置きましたので、頑張ってください。
(hostname, port は適宜変更してください。)

https://gist.github.com/shigeki/d209c7269611964f4bfb
--

---
このメールは Google グループのグループ「Node.js 日本ユーザグループ」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには nodejs_jp+...@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

developer

unread,
Apr 23, 2014, 10:00:13 AM4/23/14
to node...@googlegroups.com
大津様

ありがとうございます!!
接続できました!

環境面ではまり所があった為、一応、備忘録として残しておきます。

・ローカルで確認する場合、127.0.0.1でないとアクセスできない。
なぜかローカルループバックアドレスでないとアクセスできませんでした。
ちなみにApacheなどはlocalhostや自IPで問題なくアクセスできます。

・SSLを自己証明書でやる場合のFirefox
Chromeは何もしなくてアクセス可能でしたが、
Firefoxの場合、自己証明書を信頼してやらないとWebsocketでアクセスできませんでした。

以上です。


2014年4月23日水曜日 18時27分17秒 UTC+9 developer:
Reply all
Reply to author
Forward
0 new messages