首先找一個文件夾建立今天的代碼文件:wss.js,並將上一篇生成的服務器私鑰ssl.key和證書ssl.crt放在同目錄下。
因爲這裏須要用到node.js的ws模塊,因此經過npm命令進行下載。
這裏須要注意,npm安裝模塊分爲全局安裝和局部安裝,爲了避免污染全局環境,這裏就把ws模塊安裝到server.js同目錄下。
在 wss.js 目錄下打開cmd,運行如下代碼下載ws:javascript
npm install ws
若是安裝成功,會在目錄下看到一個 node_modules 文件夾,裏面有ws文件夾,表示ws模塊已經安裝成功。java
// wss.js const fs = require('fs'); // 一些配置信息 const cfg = { port: 8888, ssl_key: 'ssl.key', ssl_cert: 'ssl.crt' }; const httpServ = require('https'); const WebSocketServer = require('ws').Server; // 引用Server類 // 建立request請求監聽器 const processRequest = (req, res) => { res.writeHead(200); res.end('厲害了,個人WebSockets!\n'); }; const app = httpServ.createServer({ // 向server傳遞key和cert參數 key: fs.readFileSync(cfg.ssl_key), cert: fs.readFileSync(cfg.ssl_cert) }, processRequest).listen(cfg.port); // 實例化WebSocket服務器 const wss = new WebSocketServer({ server: app }); // 若是有WebSocket請求接入,wss對象能夠響應connection事件來處理 wss.on('connection', (wsConnect) => { console.log('服務器已啓動,監聽中~'); wsConnect.on('message', (message) => { console.log(`服務器接收到:${message}`); wsConnect.send(`服務器回覆: ${message}`, (err) => { if (err) { console.log(`服務器錯誤:${err}`); } }); }); });
提示:這裏的 ${ }是ES6標準中的佔位符,外層不是普通的 單引號,而是反引號,即左上角 ESC 鍵下面那個。node
到此服務器代碼已經寫完,具體做用不解釋了,註釋應該能看懂。npm
在wss.js 目錄下運行cmd,運行如下命令執行 wss.js :瀏覽器
node wss.js
此時服務器處於等待鏈接狀態,此時在瀏覽器地址中打開網址:https://127.0.0.1/8888,若是看到瀏覽器中顯示:厲害了,個人WebSockets!,則表示運行成功。服務器
下面在支持javascript的瀏覽器的console中依次運行下面的客戶端代碼進行驗證,查看服務器返回數據是否正確。
我使用的是QQ瀏覽器,在https://127.0.0.1/8888 中按F12打開開發者窗口,並選擇Console標籤,依次輸入如下代碼:app
const socket = new WebSocket('wss://127.0.0.1:8888/');
socket.onmessage = function (e) { console.log('服務器: ' + e.data); };
socket.send('你好,服務器');
!!!注意:以上代碼要一個個運行,運行完上一條無誤後,再運行下一條。
你會在Console中看到這些:socket
在cmd中也會獲得相應的反饋:
ui
歡迎加QQ羣交流:146202960
或點擊連接加入羣聊:https://jq.qq.com/?_wv=1027&k...spa