利用node搭建聊天服務器

首先在編輯器裏輸入以下代碼,我用的軟件是sublime3,很好用的一款編輯器,推薦。

var net = require('net')
var chatServer = net.createServer(),
clientList = []
chatServer.on('connection', function(client) {
    client.name = client.remoteAddress + ':' + client.remotePort
    client.write('Hi ' + client.name + '!\n');
    console.log(client.name + ' joined')
    clientList.push(client)
    client.on('data', function(data) {
        broadcast(data, client)
    })
    client.on('end', function() {
        console.log(client.name + ' quit')
        clientList.splice(clientList.indexOf(client), 1)
    })
    client.on('error', function(e) {
        console.log(e)
    })
})
function broadcast(message, client) {
    var cleanup = []
    for(var i=0;i<clientList.length;i+=1) {
        if(client !== clientList[i]) {
            if(clientList[i].writable) {
                clientList[i].write(client.name + " says " + message)
                } else {
                    cleanup.push(clientList[i])
                    clientList[i].destroy()
            }
        }
    }
// 在寫入循環中刪除死節點,消除垃圾索引
    for(i=0;i<cleanup.length;i+=1) {
    clientList.splice(clientList.indexOf(cleanup[i]), 1)
    }
}
chatServer.listen(9000)

接下來,首先win+r,輸入cmd打開終端。

然後將執行目錄切換到你的代碼所在的目錄下,我是將代碼命名爲chat.js ,然後放在h盤的js文件夾下面。接着只要輸入以下的代碼,就運行了。

然後再打開一個終端 ,輸入以下的代碼就可以聊天了。

按下回車之後就行看到,已經連接上服務器了,並且會顯示你的ip和端口,而在服務器端也會顯示哪個客戶端連接上了。

 此時再打開一個客戶端連接上服務器,也會相應的顯示,接下來就可以進行聊天了。

一個客戶端輸入相應的字符,另一個客戶端就會進行顯示。

當你關閉一個客戶端時,在服務器端也會相應的顯示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章