1. 程式人生 > >[轉]【NODE】用WS模塊創建加密的WS服務(WSS)

[轉]【NODE】用WS模塊創建加密的WS服務(WSS)

setting sublime websocket lis pop 函數 server nim data-

【From】 https://luojia.me/2015/07/21/%E3%80%90node%E3%80%91%E7%94%A8ws%E6%A8%A1%E5%9D%97%E5%88%9B%E5%BB%BA%E5%8A%A0%E5%AF%86%E7%9A%84ws%E6%9C%8D%E5%8A%A1wss/

node的ws模塊可以很方便地創建一個單純的標準websocket服務,但是對於創建wss服務並沒有提供一個獨立的方法,還是使用創建ws服務的方法,在傳入參數對象裏加了個自定義的https服務。

也不知道是我找錯了文檔還是官方文檔就那麽簡潔,不過readme文件寫的文檔的確是這個→doc/ws.md,然後我研究了好幾天還翻了遍它的源碼和examples才終於理解了這個文檔。

示例

var https=require(‘https‘);
var ws=require(‘ws‘);
var fs=require(‘fs‘);
var keypath=process.cwd()+‘/server.key‘;//我把秘鑰文件放在運行命令的目錄下測試
var certpath=process.cwd()+‘/server.crt‘;//console.log(keypath);
//console.log(certpath);
 
var options = {
  key: fs.readFileSync(keypath),
  cert: fs.readFileSync(certpath),
  passphrase:
‘1234‘//如果秘鑰文件有密碼的話,用這個屬性設置密碼 }; var server=https.createServer(options, function (req, res) {//要是單純的https連接的話就會返回這個東西 res.writeHead(403);//403即可 res.end("This is a WebSockets server!\n"); }).listen(25550); var wss = new ws.Server( { server: server } );//把創建好的https服務器丟進websocket的創建函數裏,ws會用這個服務器來創建wss服務
//同樣,如果丟進去的是個http服務的話那麽創建出來的還是無加密的ws服務 wss.on( ‘connection‘, function ( wsConnect ) { wsConnect.on( ‘message‘, function ( message ) { console.log( message ); }); });

wss創建出來,其余的操作和普通的ws服務都是完全一樣的

[轉]【NODE】用WS模塊創建加密的WS服務(WSS)