質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2421閲覧

WebSocket サーバ を起動したい

taiyo2017

総合スコア170

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/10/26 09:36

WebSocket サーバ を起動したいです。以下のようにコードを書きました。
http://zing.hatenadiary.jp/entry/2014/08/25/225228 からコードをポート番号以外をそのままコピペしてきました。
何点か質問があります。

key: fs.readFileSync('./server.pem').toString(), cert: fs.readFileSync('./server.crt').toString()

のserver.pemとserver.crtはどのように作るのでしょうか?
またサーバーはどのように(どんなコマンドで)起動すればいいのでしょうか?

var fs = require('fs'); var ws = require('websocket.io'); var https = require('https'); var port = 8000; var opts = { // SSL証明書と秘密鍵を準備する key: fs.readFileSync('./server.pem').toString(), cert: fs.readFileSync('./server.crt').toString() }; var ssl_server = https.createServer(opts, function(req, res) { res.end(); }); var server = ws.attach(ssl_server); // クライアントからの接続イベントを処理 server.on('connection', function(socket) { // クライアントからのメッセージ受信したとき socket.on('message', function(data) { console.log('data'); // 受信したメッセージを全てのクライアントに送信する server.clients.forEach(function(client) { client.send(data); }); }); // クライアントが切断したとき socket.on('disconnect', function(){ console.log('connection disconnect'); }); // 通信がクローズしたとき socket.on('close', function(){ console.log('connection close'); }); // エラーが発生したとき socket.on('error', function(err){ console.log(err); }); }); // サーバーを起動し続ける ssl_server.listen(port, function() { console.log('Listening on ' + port); });

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「サーバー証明書の作り方」などで調べれば結構出てきますのでそちらを参考に。
コピペしたコードにも「SSL証明書と秘密鍵を準備する」とありますよね。

確か前の質問で私が提示した記事かと思いますが、記事を読んでいくと下記のような記述があります。

wssプロトコルを使用する際には、SSL証明書とサーバーの秘密鍵が必要です。

要は「自前でSSL証明書と秘密鍵を用意してくださいね」ということです。
「このコードコピペしてURLとか書き換えれば動きますよ」ということではありません。

WebSocketなどはあくまでサーバーであるため、コード云々ではなく「環境構築」として取り扱いましょう。
ご自身でも「WebSocket サーバ 」と書かれていますよね。サーバーを立ち上げるので環境構築です。
コードは環境が全て出来上がってこそ動くものです。
PHPなどサーバー側で動く言語もApacheなどWebサーバーがないとただの文字列ですしね。

投稿2018/10/26 20:49

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問