上世紀六七十年代,紅岸基地一直在向茫茫外太空發送訊號,當葉文潔通過太陽作為廣播,將地球的訊號向外發送時,宇宙的各個先進文明都接收到了訊號,其中就包括了離我們最近的三體星。
本篇用node.js的http模塊模擬這一事件。
let http = require('http')// 創建一個web服務器let server = http.createServer()server.on('request', function () { console.log('我們接收到了一個用原始膜發送訊號的文明,這個文明竟然完全不知道宇宙的黑暗森林法則,我們暫不清理她,觀察下這個文明的狀態')})let port = 8000server.listen(port, function () { console.log('在瀏覽器訪問: http://127.0.0.1:' + port + ', 你將把你的請求發送到宇宙中...')})
開啟服務:
☁ 01 [master] :zap: node 08.js
在瀏覽器訪問: http://127.0.0.1:8000, 你將把你的請求發送到宇宙中...
我們接收到了一個用原始膜發送訊號的文明,這個文明竟然完全不知道宇宙的黑暗森林法則,我們暫不清理她,觀察下這個文明的狀態
由于服務端沒有給客戶端響應,因為客戶端一直在等待響應
http服務.gif
當我們的請求被三體星獲取到后,三體人由于自己的母星不宜生存,在ETO組織的協助下,三體星準備入侵地球,以下是ETO與三體星的通信:
三體指令
let http = require('http')let fs = require('fs')// 創建一個web服務器let server = http.createServer()server.on('request', function (req, res) { let url = req.url if (url === '/') { // 設置編碼格式,避免中文亂碼 res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('歡迎來到三體世界') } else if (url === '/point') { console.log('地球人不知道有黑暗森林的存在,葉文潔悟出了這個道理,并啟發了羅輯,我們要讓ETO殺了羅輯') fs.readFile('./data/threeBody.html', function (err, data) { if (err) { res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('星際網絡出故障了,文件讀取不到') } else { // 發送html文件,需要表示文件頭是 text/html res.setHeader('Content-Type', 'text/html; charset=utf-8') res.end(data) } }) } else if (url === '/photo') { console.log('ETO要看我們的星際環境,給他們傳送張圖片吧') fs.readFile('./data/threeBody.jpeg', function (err, data) { if (err) { res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('星際網絡出故障了,圖片讀取不到') } else { // 發送圖片用的是二進制格式 res.end(data) } }) } else { res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('消息已沉入茫茫宇宙中...') }})// 自定義端口let port = 8000server.listen(port, function () { console.log('與三體的通信又搭建成功,在瀏覽器訪問: http://127.0.0.1:' + port)})
三體通信服務.gif
每次改動服務端的代碼,都需要重啟服務
關于http模塊的api使用說明,詳見 http模塊文檔
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答