Önce Nginxten başlayalım.
ssl_certificate /etc/letsencrypt/live/siteadi.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/siteadi.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/siteadi.com/chain.pem;
location /sckt {
proxy_pass https://dawnchat.com:6001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header 'Access-Control-Allow-Origin' '*';
proxy_cache_bypass $http_upgrade;
}
Bu kısım olduğu gibi serverin icinde. Ben tarayıcıya /sckt yazınca socket.io ya baglansın istiyorum. O yüzden içeride bir reverse proxy yaptım bu şekilde.
Gelelim NodeJS kısmına.
SSL konfigurasyonu farklı gibi gorunuyor ama aynı dosyaları alıyor siz öyle yaparsınız en azından ben örnek için bu şekilde yazdım hızlıca. Aşağıda gördüğünüz üzere benim node için seçtiğim port 6001 ama nginx tarafında reverse proxy yaptığım için
https://siteadi.com/sckt/socket.io/?EIO=3&transport=polling&t=M2ktBqC
tarzı bir url verdiğim zaman bana aşağıdaki gibi bir sonuç döndürmeli.
97:0{"sid":"bj1oeJOjjSHCmBpVAAAF","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":60000}
const protocol = 'https';const domain = 'dawnchat.com'; const timer = 5 const randomStr = require('randomstring');const request = require('request'); var fs = require('fs');var https = require('https'); var express = require('express');var app = express(); var options = { key: fs.readFileSync("/home/layfon/dawnchat.com/ws.server/privkey1.pem"), cert: fs.readFileSync('/home/layfon/dawnchat.com/ws.server/cert1.pem'), ca: fs.readFileSync('/home/layfon/dawnchat.com/ws.server/fullchain1.pem'), requestCert: true, rejectUnauthorized: false}; var server = https.createServer(options, app); server.listen(6001, function() { console.log('Secure server running on port 6001') }) var io = require('socket.io').listen(server,{path:"/sckt"});
Gelelim client tarayıcı tarafına. Tarayıcının socket.ioya baglanacağı kısma path olarak aynı nodejsdeki gibi bir option eklerseniz o da sorunsuz bir şekilde bağlanacaktır.
0 yorum:
Yorum Gönder