Socket.IO 和 Node.js 入門
Node.js 并不能做所有事情,但它可通過 Socket.IO 庫輕松實現 WebSockets。使用 WebSockets 可輕松構建實時多用戶的應用程序或游戲,今天我們將講述如何使用 Node.js 和 Socket.IO 構建簡單的聊天程序。
注意: 在閱讀文章之前你應該先安裝好 Node.js,同時你需要一個自己喜歡的文本編輯器,本文提及的一些源碼有些改自 http://book.mixu.net/ch13.html
下面我們開始入門教程:
首先在你的電腦上創建一個新目錄,姑且命名為 chat,然后在該目錄創建兩個文件,分別是 app.js 和 index.html。
app.js 文件內容如下:
var fs = require('fs') , http = require('http') , socketio = require('socket.io'); var server = http.createServer(function(req, res) { res.writeHead(200, { 'Content-type': 'text/html'}); res.end(fs.readFileSync(__dirname + '/index.html')); }).listen(8080, function() { console.log('Listening at: http://localhost:8080'); }); socketio.listen(server).on('connection', function (socket) { socket.on('message', function (msg) { console.log('Message Received: ', msg); socket.broadcast.emit('message', msg); }); });
上述代碼是一個超級簡單的聊天服務器的實現,該服務器發送 index.html 并偵聽所有 WebSockets 請求,如果你發送一個 hi 的聊天信息,格式如下:
{"name":"message","args":["hi"]}
index.html 頁面代碼如下:
<html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script src="/socket.io/socket.io.js"></script> <script> $(function(){ var iosocket = io.connect(); iosocket.on('connect', function () { $('#incomingChatMessages').append($('<li>Connected</li>')); iosocket.on('message', function(message) { $('#incomingChatMessages').append($('<li></li>').text(message)); }); iosocket.on('disconnect', function() { $('#incomingChatMessages').append('<li>Disconnected</li>'); }); }); $('#outgoingChatMessage').keypress(function(event) { if(event.which == 13) { event.preventDefault(); iosocket.send($('#outgoingChatMessage').val()); $('#incomingChatMessages').append($('<li></li>').text($('#outgoingChatMessage').val())); $('#outgoingChatMessage').val(''); } }); }); </script> </head> <body> Incoming Chat: <ul id="incomingChatMessages"></ul> <br /> <input type="text" id="outgoingChatMessage"> </body> </html>
該頁面雖然不怎么吸引人,但是可正常工作。接下來打開兩個瀏覽器,必須得是支持 WebSockets 的瀏覽器,例如 Chrome 或者 Safari。
下一步就是安裝 Socket.IO 了,可在命令行窗口中執行如下命令:
$ npm install socket.io
然后運行 app.js 文件:
$ node app.js
現在你可以打開兩個瀏覽器,訪問 http://localhost:8080/ 地址開始互聊了。
英文原文,OSCHINA原創翻譯
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!