Forge サーバーで Laravel PHP アプリケーションを実行しています。サーバーには複数の Nginx サイトがあります。Socket.io 接続をセットアップしようとしています。以前は HTTP でこれを実行していましたが、SSL では機能しません。
まず、forge ( socket.mydomain.com
) で新しいサイトを作成し、それを使用Forever
して Node.js スクリプトを実行します。イベントを受信してコンソールに出力しているため、スクリプトが実行されていることはわかっています-フロントエンドに接続できません。
私の socket.io スクリプトは次のとおりです。
var https = require('https'),
fs = require('fs');
var options = {
key: fs.readFileSync('/etc/nginx/ssl/socket.example.com/54082/server.key'),
cert: fs.readFileSync('/etc/nginx/ssl/socket.example.com/54082/server.crt')
};
var app = https.createServer(options);
var io = require('socket.io').listen(app);
io.sockets.on('connection', function(socket) {
console.log('connected');
});
app.listen(3000);
フロントエンドで使用しているコードは次のとおりです。
<script type="text/javascript" src="https://socket.example.com/socket.io/socket.io.js"></script>
<script type="text/javascript">
var io = io('https://socket.example.com', {secure: true});
....
これをSSLで機能させる方法を知っている人はいますか? 同様に、アドレス/ポートはどうあるべきですか? 正しいポートで Forever を使用してこれを開始するにはどうすればよいですか? そして、私のNginxの設定には何か特別なものが必要ですか?
多くの感謝、これは長年の問題でした....