Nodejs搭建wss服務(wù)器教程
本文為大家分享了Nodejs搭建wss服務(wù)器的教程,供大家參考,具體內(nèi)容如下
首先使用OpenSSL創(chuàng)建自簽名證書(shū):
#生成私鑰key文件 openssl genrsa 1024 > /path/to/private.pem // #通過(guò)私鑰文件生成CSR證書(shū)簽名 openssl req -new -key /path/to/private.pem -out csr.pem // #通過(guò)私鑰文件和CSR證書(shū)簽名生成證書(shū)文件 openssl x509 -req -days 365 -in csr.pem -signkey /path/to/private.pem -out /path/to/file.crt
使用ws模塊創(chuàng)建wss服務(wù)器:
var https=require('https'); var ws=require('ws'); var fs=require('fs'); var keypath=process.cwd()+'/server.key';//我把秘鑰文件放在運(yùn)行命令的目錄下測(cè)試 var certpath=process.cwd()+'/server.crt';//console.log(keypath); //console.log(certpath); var options = { key: fs.readFileSync(keypath), cert: fs.readFileSync(certpath), passphrase:'1234'//如果秘鑰文件有密碼的話(huà),用這個(gè)屬性設(shè)置密碼 }; var server=https.createServer(options, function (req, res) {//要是單純的https連接的話(huà)就會(huì)返回這個(gè)東西 res.writeHead(403);//403即可 res.end("This is a WebSockets server!\n"); }).listen(15449); var wss = new ws.Server( { server: server } );//把創(chuàng)建好的https服務(wù)器丟進(jìn)websocket的創(chuàng)建函數(shù)里,ws會(huì)用這個(gè)服務(wù)器來(lái)創(chuàng)建wss服務(wù) //同樣,如果丟進(jìn)去的是個(gè)http服務(wù)的話(huà)那么創(chuàng)建出來(lái)的還是無(wú)加密的ws服務(wù) wss.on( 'connection', function ( wsConnect ) { wsConnect.on( 'message', function ( message ) { console.log( message ); }); });
客戶(hù)端鏈接:
var ws = new WebSocket('wss://localhost:15449/', { protocolVersion: 8, origin: 'https://localhost:15449', rejectUnauthorized: false //重要,自簽名證書(shū)只能這樣設(shè)了。CA頒發(fā)的受信任證書(shū)就不需要了 });
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nodejs通過(guò)釘釘群機(jī)器人推送消息的實(shí)現(xiàn)代碼
最近在用 nodejs 寫(xiě)爬蟲(chóng),之前的 nodejs 爬蟲(chóng)代碼用 js 寫(xiě)的,感覺(jué)可維護(hù)性太差,也沒(méi)有智能提示,于是把js改用ts(typescript)重寫(xiě)一下,提升代碼質(zhì)量。接下來(lái)通過(guò)本文給大家分享nodejs通過(guò)釘釘群機(jī)器人推送消息,需要的朋友參考下吧2019-05-05獨(dú)立部署小程序基于nodejs的服務(wù)器過(guò)程詳解
這篇文章主要介紹了獨(dú)立部署小程序基于nodejs的服務(wù)器過(guò)程詳解,完全自定義的部署小程序服務(wù)器, 不依托于騰訊云服務(wù)器體系. 以阿里云服務(wù)器為基礎(chǔ)建立.服務(wù)器語(yǔ)言選用nodejs.,需要的朋友可以參考下2019-06-06Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易登錄身份認(rèn)證
本篇文章主要介紹了Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易身份認(rèn)證示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04gyp?ERR!報(bào)錯(cuò)問(wèn)題解決辦法
這篇文章主要給大家介紹了關(guān)于gyp?ERR!報(bào)錯(cuò)問(wèn)題的解決辦法,文中將解決的辦法介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01NodeJS Web應(yīng)用監(jiān)聽(tīng)sock文件實(shí)例
這篇文章主要介紹了NodeJS Web應(yīng)用監(jiān)聽(tīng)sock文件實(shí)例,本文講解 NodeJS 的 TCP 和 HTTP 監(jiān)聽(tīng) Domain Socket 文件例子,需要的朋友可以參考下2015-02-02