鍍金池/ 問答/HTML/ node.js網(wǎng)絡(luò)編程怎么學(xué)?

node.js網(wǎng)絡(luò)編程怎么學(xué)?

之前沒學(xué)套接字編程,在看深入淺出node.js。看到網(wǎng)絡(luò)編程這塊,不知道如何下手,看node官方文檔也不知道該怎么做。比如書上第一個(gè)例子:

var net = require('net')

var server = net.createServer( function (socket){
    socket.on('data',function(data){
        socket.write("你好")
    })

    socket.on('end',function(){
        console.log('連接斷開')
    })

    socket.write("歡迎光臨")
} )

server.listen(8124,function(){
    console.log('server bound')
})

書上利用Telnet工具作為客戶端,輸出
歡迎光臨
hi
你好

上面代碼有部分書上沒解釋,'data' 事件是在官網(wǎng)查到的,可有些太容易的官網(wǎng)估計(jì)也不會(huì)寫
書上寫connection:每個(gè)客戶端套接字連接到服務(wù)端時(shí)觸發(fā),簡潔寫法為net.createSever(),最后一個(gè)參數(shù)觸發(fā)。所以上面代碼中的 function (socket)函數(shù)在客戶端套接字連接到服務(wù)端時(shí)被觸發(fā)了?
還有上面代碼實(shí)現(xiàn) 客戶端套接字連接服務(wù)端 的部分在哪?客戶端套接字和服務(wù)端套接字怎么區(qū)分。

回答
編輯回答
溫衫

先從基礎(chǔ)的tcp、udp協(xié)議開始學(xué)起,學(xué)會(huì)網(wǎng)絡(luò)基礎(chǔ)知識(shí)。

2018年8月9日 21:37
編輯回答
墨小羽

給你注釋一下吧,客戶端和服務(wù)端


var server = net.createServer( function (socket){
    socket.write("歡迎光臨");//有一個(gè)客戶端第一次連接時(shí)觸發(fā)
    socket.on('data',function(data){
        console.log(data)//客戶端發(fā)送的信息
        socket.write("你好")//向客戶端推送信息
    })

    socket.on('end',function(){
        console.log('連接斷開')//連接斷開時(shí)觸發(fā)
    })
} )

客戶端

var socket = new WebSocket('ws://localhost:8080'); //初始化一個(gè)soket連接

// 打開Socket 觸發(fā)服務(wù)端端 “歡迎光臨”
socket.onopen = function(event) { 
  // 發(fā)送一個(gè)消息 觸發(fā)服務(wù)端data事件   
  socket.send('向后臺(tái)發(fā)送了一條消息'); 

  //接收服務(wù)端推送的消息  “你好”
  socket.onmessage = function(event) { 
    console.log('接收到了后臺(tái)的消息',event); 
  }; 

  //服務(wù)端關(guān)閉socket時(shí)觸發(fā)
  socket.onclose = function(event) { 
    console.log('后臺(tái)關(guān)閉socket',event); 
  }; 
  // 客戶端關(guān)閉socket時(shí)觸發(fā) 服務(wù)端 end事件 “連接斷開”
  //socket.close() 
};
2018年1月27日 15:49
編輯回答
法克魷

老哥,推薦你去看《7天學(xué)會(huì)nodejs》,講的很詳細(xì),特別適合入門

2017年7月7日 07:07
編輯回答
悶騷型

這個(gè)講座也許對你有幫助:https://segmentfault.com/l/15...

2017年8月19日 12:07
編輯回答
失魂人

這視頻教程看完估計(jì)就懂了
http://www.sucaihuo.com/video...

2017年5月15日 07:27