Node.js โมดูลสุทธิ
Node.js โมดูลสุทธิ
Node.js โมดูลสุทธิให้จำนวนของแกดเจ็ตสำหรับเครือข่ายการสื่อสารพื้นฐานรวมทั้งการสร้างวิธีการที่ลูกค้า / เซิร์ฟเวอร์ที่เราสามารถนำเข้าไปในโมดูลในรูปแบบต่อไปนี้:
var net = require("net")
ทาง
เลขที่ | วิธีการและคำอธิบาย |
---|---|
1 | net.createServer ([ตัวเลือก] [, connectionListener ]) สร้างเซิร์ฟเวอร์ TCP พารามิเตอร์ ConnectionListener โดยอัตโนมัติไปยัง 'เชื่อมต่อ' เหตุการณ์สร้างฟัง |
2 | net.connect (ตัวเลือก [connectionListener]) มันกลับใหม่ 'net.Socket' และเชื่อมต่อไปยังที่อยู่ที่ระบุไว้และพอร์ต เมื่อซ็อกเก็ตที่จัดตั้งขึ้นก็จะก่อให้เกิดเหตุการณ์ "เชื่อมต่อ" |
3 | net.createConnection (ตัวเลือก [connectionListener]) สร้างโฮสต์และพอร์ตของโฮสต์ที่จะเชื่อมต่อ TCP พอร์ต เจ้าภาพเริ่มต้นที่ 'localhost' |
4 | net.connect (พอร์ต [โฮสต์] [ , connectListener]) สร้างพอร์ตสำหรับพอร์ตโฮสต์และเป็นเจ้าภาพการเชื่อมต่อ TCP เจ้าภาพเริ่มต้นที่ 'localhost' พารามิเตอร์ connectListener จะเพิ่มเป็นผู้ฟังที่ 'เชื่อมต่อ' เหตุการณ์ ย้อนกลับ 'net.Socket' |
5 | net.createConnection (พอร์ต [โฮสต์] [ , connectListener]) สร้างพอร์ตสำหรับพอร์ตโฮสต์และเป็นเจ้าภาพการเชื่อมต่อ TCP เจ้าภาพเริ่มต้นที่ 'localhost' พารามิเตอร์ connectListener จะเพิ่มเป็นผู้ฟังที่ 'เชื่อมต่อ' เหตุการณ์ ย้อนกลับ 'net.Socket' |
6 | net.connect (เส้นทาง [connectListener]) สร้างการเชื่อมต่อไปยังเส้นทางของซ็อกเก็ตที่ใช้ระบบปฏิบัติการยูนิกซ์ พารามิเตอร์ ConnectListener เป็นผู้ฟังจะถูกเพิ่มในเหตุการณ์ "เชื่อมต่อ" ย้อนกลับ 'net.Socket' |
7 | net.createConnection (เส้นทาง [connectListener]) สร้างการเชื่อมต่อไปยังเส้นทางของซ็อกเก็ตที่ใช้ระบบปฏิบัติการยูนิกซ์ พารามิเตอร์ connectListener จะเพิ่มเป็นผู้ฟังที่ 'เชื่อมต่อ' เหตุการณ์ ย้อนกลับ 'net.Socket' |
8 | net.isIP (input) การตรวจสอบว่าที่อยู่ IP การป้อนข้อมูล IPV4 ผลตอบแทน 4 IPV6 ผลตอบแทน 6 มิฉะนั้นกลับ 0 |
9 | net.isIPv4 (input) ถ้าที่อยู่ที่ป้อนเป็น IPV4 ผลตอบแทนที่แท้จริงมิฉะนั้นกลับเท็จ |
10 | net.isIPv6 (input) หากที่อยู่ที่ถูกป้อนเป็น IPV6 ผลตอบแทนที่แท้จริงมิฉะนั้นกลับเท็จ |
net.Server
net.Server มักจะใช้ในการสร้าง TCP หรือเซิร์ฟเวอร์ภายใน
เลขที่ | วิธีการและคำอธิบาย |
---|---|
1 | server.listen (พอร์ต [โฮสต์] [ ค้าง] [โทรกลับ]) ฟังพอร์ตการเชื่อมต่อและโฮสต์ AC โฮสต์พอร์ตที่ระบุไว้ โดยค่าเริ่มต้นโฮสต์ยอมรับอยู่ IPv4 ใด ๆ (INADDR_ANY) การเชื่อมต่อโดยตรง พอร์ตเป็น 0 มันจะกำหนดพอร์ตแบบสุ่ม |
2 | server.listen (เส้นทาง [โทรกลับ]) ระบุเส้นทางของการเชื่อมต่อเริ่มต้นเซิร์ฟเวอร์ซ็อกเก็ตในท้องถิ่น |
3 | server.listen (จัดการ [โทรกลับ]) เชื่อมต่อโดยการระบุหมายเลขอ้างอิง |
4 | server.listen (ตัวเลือก [การเรียกกลับ]) ตัวเลือกแอตทริบิวต์: พอร์ตโฮสต์โฮสต์และค้างเช่นเดียวกับพารามิเตอร์ที่ไม่จำเป็นฟังก์ชันการเรียกกลับเรียกพวกเขาร่วมกัน server.listen (พอร์ต [โฮสต์], [ค้าง], [โทรกลับ]) นอกจากนี้พารามิเตอร์เส้นทางที่สามารถนำมาใช้เพื่อระบุซ็อกเก็ตยูนิกซ์ |
5 | server.close ([โทรกลับ]) Server หยุดยอมรับการเชื่อมต่อใหม่และรักษาฐานการเชื่อมต่อที่มีอยู่ นี้เป็นฟังก์ชั่นไม่ตรงกันเมื่อทุกการเชื่อมต่อเซิร์ฟเวอร์ที่สิ้นสุดจะปิดตัวลงและจะเรียก 'ปิด' เหตุการณ์ |
6 | server.address () ระบบปฏิบัติการส่งกลับที่อยู่ที่ถูกผูกไว้ชื่อโปรโตคอลครอบครัวและพอร์ตเซิร์ฟเวอร์ |
7 | server.unref () หากเป็นเหตุการณ์ของระบบเซิร์ฟเวอร์เพียงหนึ่ง unref สายที่ใช้จะช่วยให้โปรแกรมที่จะออกจาก |
8 | server.ref () และ unref ตรงกันข้ามถ้านี้เป็นเซิร์ฟเวอร์เพียงโทรโทษก่อนที่จะถูก unref บนเซิร์ฟเวอร์จะไม่อนุญาตให้ออกจากโปรแกรม (พฤติกรรมเริ่มต้น) ถ้าเซิร์ฟเวอร์ที่ได้รับการอ้างอ้างอิงถูกเรียกอีกครั้งและจะไม่ได้มีผลกระทบ |
9 | server.getConnections (โทรกลับ) Asynchronous Gets จำนวนของเซิร์ฟเวอร์ที่เชื่อมต่อการใช้งานในปัจจุบัน เมื่อซ็อกเก็ตถูกส่งไปยังกระบวนการเด็กหลังจากที่มีประสิทธิภาพฟังก์ชันการเรียกกลับมีสองข้อโต้แย้งที่ผิดพลาดและการนับ |
เหตุการณ์
เลขที่ | กิจกรรมและรายละเอียด |
---|---|
1 | การฟัง เมื่อสายเซิร์ฟเวอร์ server.listen ทริกเกอร์ที่มีผลผูกพัน |
2 | สัมพันธ์ มันจะถูกเรียกเมื่อการเชื่อมต่อใหม่จะถูกสร้างขึ้น ซ็อกเก็ตเช่น net.Socket |
3 | ใกล้ มันเป็นต้นเหตุของเซิร์ฟเวอร์ปิด โปรดทราบว่าถ้ามีการเชื่อมต่อเหตุการณ์นี้จะไม่ถูกเรียกจนปิดการเชื่อมต่อทั้งหมด |
4 | ความผิดพลาด มันจะถูกเรียกเมื่อเกิดข้อผิดพลาด 'ปิด' เหตุการณ์จะถูกเรียกว่าโดยตรงต่อไปนี้เหตุการณ์ที่เกิดขึ้น |
net.Socket
net.Socket วัตถุเป็น TCP หรือ UNIX ซ็อกเก็ตที่เป็นนามธรรม ตัวอย่าง net.Socket ของการสำนึกของอินเตอร์เฟซสตรีมเพล็กซ์ พวกเขาสามารถสร้างขึ้นในลูกค้าผู้ใช้ (โดยใช้การเชื่อมต่อ ()) ใช้หรือเมื่อพวกเขาถูกสร้างขึ้นโดยโหนดและมอบให้กับผู้ใช้ผ่านกิจกรรมการเชื่อมต่อเซิร์ฟเวอร์
เหตุการณ์
เหตุการณ์ net.Socket:
เลขที่ | กิจกรรมและรายละเอียด |
---|---|
1 | ค้นหา หลังชื่อ แต่ก่อนที่จะเชื่อมต่อกับเรียกเหตุการณ์นี้ สำหรับ UNIX sokcet NA |
2 | ต่อ เมื่อเรียกจะจัดตั้งขึ้นประสบความสำเร็จในการเชื่อมต่อซ็อกเก็ต |
3 | ข้อมูล ไฟไหม้เมื่อข้อมูลที่ได้รับ |
4 | ปลาย เมื่อซ็อกเก็ตและส่วนอื่น ๆ ที่จะส่งแพ็คเก็ต FIN ที่เรียกเหตุการณ์นี้ |
5 | การหยุดพักชั่วคราว เมื่อหมดเวลาที่ไม่ได้ใช้งานซ็อกเก็ตเรียกเฉพาะซ็อกเก็ตโชว์ไม่มีการใช้งาน ผู้ใช้ต้องด้วยตนเองปิดการเชื่อมต่อ |
6 | ท่อระบายน้ำ เมื่อเรียกเป็นที่ว่างเปล่าเมื่อแคชการเขียน มันสามารถนำมาใช้ในการควบคุมการอัปโหลด |
7 | ความผิดพลาด มันจะถูกเรียกเมื่อเกิดข้อผิดพลาด |
8 | ใกล้ ไฟไหม้เมื่อซ็อกเก็ตปิดสนิท พารามิเตอร์ Had_error เป็นค่าบูลีนที่บ่งชี้ว่าเป็นเพราะใกล้ซ็อกเก็ตส่งข้อผิดพลาด |
คุณสมบัติ
net.Socket ให้คุณสมบัติที่มีประโยชน์มากมายง่ายต่อการควบคุมการปฏิสัมพันธ์ซ็อกเก็ต:
เลขที่ | อสังหาริมทรัพย์และคำอธิบาย |
---|---|
1 | socket.bufferSize คุณสมบัตินี้จะแสดงจำนวนไบต์ที่จะเขียนลงในบัฟเฟอร์ |
2 | socket.remoteAddress สตริงระยะไกลที่อยู่ IP ตัวอย่างเช่น: 74 .125.127.100 'หรือ' 2001: 4860: A005 :: 68 ' |
3 | socket.remoteFamily IP สตริงชุดโปรโตคอลระยะไกลเช่น 'IPv4' หรือ 'IPv6' |
4 | socket.remotePort พอร์ตระยะไกลเป็นตัวแทนดิจิตอลเช่น: 80 หรือ 21 |
5 | socket.localAddress อินเตอร์เฟซในท้องถิ่นของมัดเชื่อมต่อเครือข่ายลูกค้าระยะไกลตรงที่อยู่ในท้องถิ่นของสตริงการเชื่อมต่อ ตัวอย่างเช่นถ้าคุณกำลังฟัง '0.0.0.0' และลูกค้าที่เชื่อมต่อกับ '192.168.1.1' ค่าที่จะ '192.168.1.1' |
6 | socket.localPort หมายเลขพอร์ตที่อยู่ในท้องถิ่น ตัวอย่างเช่น: 80 หรือ 21 |
7 | socket.bytesRead ที่จะได้รับจำนวนไบต์ที่ได้รับ |
8 | socket.bytesWritten จำนวนไบต์ที่ส่ง |
ทาง
เลขที่ | วิธีการและคำอธิบาย |
---|---|
1 | net.Socket ใหม่ ([ตัวเลือก]) เราสร้างวัตถุซ็อกเก็ตใหม่ |
2 | socket.connect (พอร์ต [โฮสต์] [ , connectListener]) พอร์ตที่กำหนดและโฮสต์พอร์ตเจ้าภาพสร้างการเชื่อมต่อซ็อกเก็ต เป็นเจ้าภาพค่าเริ่มต้นพารามิเตอร์ localhost ปกติไม่จำเป็นต้องใช้ net.createConnection เปิดซ็อกเก็ต เพียง แต่คุณจะใช้เพื่อให้บรรลุซ็อกเก็ตของพวกเขาเมื่อ |
3 | socket.connect (เส้นทาง [connectListener]) เปิดเส้นทางซ็อกเก็ต Unix ระบุ ปกติไม่จำเป็นต้องใช้ net.createConnection เปิดซ็อกเก็ต เพียง แต่คุณจะใช้เพื่อให้บรรลุซ็อกเก็ตของพวกเขาเมื่อ |
4 | socket.setEncoding ([การเข้ารหัส]) การตั้งค่าการเข้ารหัส |
5 | socket.write (ข้อมูล [การเข้ารหัส] [ โทรกลับ]) ส่งข้อมูลบนซ็อกเก็ต พารามิเตอร์ที่สองระบุการเข้ารหัสของสตริงเริ่มต้นคือการเข้ารหัส UTF8 |
6 | socket.end ([ข้อมูล] [การเข้ารหัส ]) ซ็อกเก็ตกึ่งปิด ยกตัวอย่างเช่นมันส่งแพ็กเก็ต FIN เซิร์ฟเวอร์ยังคงเป็นไปในการส่งข้อมูล |
7 | socket.destroy () ตรวจสอบให้แน่ใจว่าไม่มีฉันกิจกรรม / O บนซ็อกเก็ต เฉพาะในกรณีที่มีข้อผิดพลาดเกิดขึ้นเฉพาะเท่าที่จำเป็น (การประมวลผลข้อผิดพลาดอื่น ๆ ) |
8 | socket.pause () หยุดอ่านข้อมูล นั่นคือข้อมูลจะไม่เรียกเหตุการณ์ สำหรับการอัปโหลดการควบคุมเป็นประโยชน์อย่างมาก |
9 | socket.resume () โทรหยุด () หลังจากที่ได้อ่านข้อมูลที่คุณต้องการที่จะเรียกคืน |
10 | socket.setTimeout (หมดเวลา [โทรกลับ]) ซ็อกเก็ตไม่ได้ใช้งานมานานกว่ามิลลิวินาทีหมดเวลาซ็อกเก็ตมีการตั้งค่าการหมดเวลา |
11 | socket.setNoDelay ([NoDelay]) ปิดการใช้งาน Nag (Nagle) อัลกอริทึม โดยการเชื่อมต่อ TCP ใช้ขั้นตอนวิธีการเริ่มต้น Nag พวกเขาบัฟเฟอร์ข้อมูลก่อนที่จะส่ง ส่งข้อมูลทันที NoDelay ตั้งค่าเป็นจริงใน socket.write โทร () เวลา NoDelay ค่าเริ่มต้นเป็นความจริง |
12 | socket.setKeepAlive ([Enable] [initialDelay ]) ปิด / เปิดใช้งานฟังก์ชั่นการเชื่อมโยงนานและก่อนที่จะส่งครั้งแรกในการเชื่อมต่อที่ไม่ได้ใช้งานเป็นเวลานานบนซ็อกเก็สอบสวนตั้งค่าตัวเลือกความล่าช้าในการเริ่มต้น เริ่มต้นเป็นเท็จ การตั้งค่า initialDelay (MS) เพื่อตั้งค่าความล่าช้าแพ็คเก็ตล่าสุดที่ได้รับและการเชื่อมต่อระหว่างการสอบสวน initialDelay ตั้งค่าเป็น 0 ก็จะปล่อยให้ค่าเริ่มต้น (หรือก่อนหน้า) มูลค่า ค่าเริ่มต้นคือ 0 |
13 | socket.address () ระบบปฏิบัติการส่งกลับที่อยู่ที่ถูกผูกไว้ชื่อโปรโตคอลครอบครัวและพอร์ตเซิร์ฟเวอร์ วัตถุกลับมีสามคุณลักษณะเช่น {Port: 12346 ครอบครัว: 'IPv4' ที่อยู่: '127.0.0.1'} |
14 | socket.unref () หากเป็นเหตุการณ์ของระบบเซิร์ฟเวอร์เพียงหนึ่ง unref สายที่ใช้จะช่วยให้โปรแกรมที่จะออกจาก ถ้าเซิร์ฟเวอร์ที่ได้รับ unref, unref ถูกเรียกอีกครั้งและจะไม่ได้มีผลกระทบ |
15 | socket.ref () และ unref ตรงกันข้ามถ้านี้เป็นเซิร์ฟเวอร์เพียงโทรโทษก่อนที่จะถูก unref บนเซิร์ฟเวอร์จะไม่อนุญาตให้ออกจากโปรแกรม (พฤติกรรมเริ่มต้น) ถ้าเซิร์ฟเวอร์ที่ได้รับการอ้างอ้างอิงถูกเรียกอีกครั้งและจะไม่ได้มีผลกระทบ |
ตัวอย่าง
สร้างไฟล์ server.js รหัสเป็นดังนี้:
var net = require('net'); var server = net.createServer(function(connection) { console.log('client connected'); connection.on('end', function() { console.log('客户端关闭连接'); }); connection.write('Hello World!\r\n'); connection.pipe(connection); }); server.listen(8080, function() { console.log('server is listening'); });
การดำเนินงานของเซิร์ฟเวอร์รหัสด้านบน:
$ node server.js server is listening # 服务已创建并监听 8080 端口
เปิดหน้าต่างใหม่สร้างไฟล์ client.js รหัสเป็นดังนี้:
var net = require('net'); var client = net.connect({port: 8080}, function() { console.log('连接到服务器!'); }); client.on('data', function(data) { console.log(data.toString()); client.end(); }); client.on('end', function() { console.log('断开与服务器的连接'); });
ดำเนินการตามรหัสลูกค้าด้านบน:
连接到服务器! Hello World! 断开与服务器的连接