ใช้ socket.io เพื่อสร้างเซิร์ฟเวอร์ socket.io อย่างไรก็ตามเซิร์ฟเวอร์ขึ้นอยู่กับเซิร์ฟเวอร์ HTTP ที่สร้างขึ้นแล้ว
หลังจากเซิร์ฟเวอร์ HTTP กำลังทำงานให้ใช้วิธีการฟังเพื่อแนบเซิร์ฟเวอร์ socket.io กับเซิร์ฟเวอร์ HTTP
การคัดลอกรหัสมีดังนี้:
var sio = ต้องการ ("scoket.io");
var socket = siO.listen (เซิร์ฟเวอร์);
ซ็อกเก็ตเป็นเซิร์ฟเวอร์ซ็อกเก็ตที่สร้างขึ้นบนเซิร์ฟเวอร์
เมื่อไคลเอนต์สร้างการเชื่อมต่อกับเซิร์ฟเวอร์เหตุการณ์การเชื่อมต่อของบริการ socket.io จะถูกเรียกใช้
การคัดลอกรหัสมีดังนี้:
socket.on ("การเชื่อมต่อ" ฟังก์ชั่น (ซ็อกเก็ต) {
-
พารามิเตอร์ซ็อกเก็ตในฟังก์ชั่นการโทรกลับเป็นวัตถุพอร์ตซ็อกเก็ตที่สร้างการเชื่อมต่อระหว่างเซิร์ฟเวอร์และไคลเอนต์
เมื่อได้รับข้อความที่ส่งโดยไคลเอนต์เหตุการณ์ข้อความของวัตถุซ็อกเก็ตพอร์ตจะออก
การคัดลอกรหัสมีดังนี้:
socket.on ("ข้อความ", ฟังก์ชัน (msg) {
-
พารามิเตอร์ของฟังก์ชั่นการโทรกลับเป็นข้อความที่ส่งโดยไคลเอนต์
คุณสามารถใช้ Socket.Send (MSG) เพื่อส่งข้อความไปยังไคลเอนต์
เหตุการณ์การตัดการเชื่อมต่อจะถูกทริกเกอร์เมื่อการเชื่อมต่อฝั่งไคลเอ็นต์ฝั่งเซิร์ฟเวอร์ถูกตัดการเชื่อมต่อ
การคัดลอกรหัสมีดังนี้:
Socket.on ("Disconnect", funciton () {
-
ฟังก์ชั่นการโทรกลับนี้ไม่ได้ใช้พารามิเตอร์ใด ๆ
Server Server.js รหัส:
การคัดลอกรหัสมีดังนี้:
var http = ต้องการ ("http");
var sio = ต้องการ ("socket.io");
var fs = ต้องการ ("fs");
var server = http.createServer (ฟังก์ชั่น (req, res) {
res.writehead (200, {"content-type": "text/html"});
res.end (fs.readfilesync ("./ index.html"));
-
Server.Listen (1337);
var socket = siO.listen (เซิร์ฟเวอร์);
socket.on ("การเชื่อมต่อ" ฟังก์ชั่น (ซ็อกเก็ต) {
console.log ("การสร้างการเชื่อมต่อลูกค้า");
Socket.Send ("Hello");
socket.on ("ข้อความ", ฟังก์ชัน (msg) {
console.log ("ได้รับข้อความ:"+msg);
-
Socket.on ("Disconnect", function () {
console.log ("ลูกค้าตัดการเชื่อมต่อ");
-
-
สร้าง client index.html รหัส:
การคัดลอกรหัสมีดังนี้:
<! doctype html>
<html>
<head lang = "en">
<meta charset = "utf-8">
<title> </title>
<script src = "/socket.io/socket.io.js"> </script>
<script>
var socket = io.connect ();
socket.on ("ข้อความ" ฟังก์ชั่น (ข้อมูล) {
console.log (ข้อมูล);
socket.send ("ยอมรับข้อความ")
-
Socket.on ("Disconnect", function () {
console.log ("ตัดการเชื่อมต่อด้านเซิร์ฟเวอร์");
-
</script>
</head>
<body>
</body>
</html>
รหัสนี้: /socket.io/socket.io.js มาพร้อมกับไลบรารีคลาส Server-side.io และไม่จำเป็นต้องวางไฟล์ socket.io.js บนไคลเอนต์จริง
ในไฟล์สคริปต์ก่อนอื่นให้ใช้เมธอด io.connect () เพื่อเชื่อมต่อกับเซิร์ฟเวอร์เซิร์ฟเวอร์ Socket.io
วิธีนี้ส่งคืนวัตถุพอร์ตซ็อกเก็ตไคลเอนต์ที่สร้างการเชื่อมต่อกับเซิร์ฟเวอร์
เมื่อได้รับข้อความจากเซิร์ฟเวอร์เหตุการณ์ข้อความของวัตถุพอร์ตซ็อกเก็ตไคลเอ็นต์จะถูกเรียกใช้
การคัดลอกรหัสมีดังนี้:
socket.on ("ข้อความ", ฟังก์ชัน (msg) {
-
ผงชูรสคือข้อมูลที่ส่งโดยเซิร์ฟเวอร์
นอกจากนี้คุณยังสามารถใช้วิธีการส่ง () ของวัตถุซ็อกเก็ตไคลเอนต์เพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์
การคัดลอกรหัสมีดังนี้:
Socket.Send (MSG);
เมื่อเซิร์ฟเวอร์ตัดการเชื่อมต่อเหตุการณ์การตัดการเชื่อมต่อของวัตถุซ็อกเก็ตพอร์ตไคลเอนต์จะถูกเรียกใช้
การคัดลอกรหัสมีดังนี้:
Socket.on ("Disconnect", function () {
-
ฟังก์ชั่นการโทรกลับนี้ไม่ได้ใช้พารามิเตอร์ใด ๆ
สังเกต:
กลไกข้อความของลูกค้านั้นเหมือนกับกลไกการประมวลผลข้อความฝั่งเซิร์ฟเวอร์ เพราะ socket.io ทำให้มั่นใจได้ว่าไคลเอนต์และเซิร์ฟเวอร์ใช้ API เดียวกัน
ผลลัพธ์หลังจากทำงาน:
เมื่อเบราว์เซอร์ถูกปิดการเชื่อมต่อกับเซิร์ฟเวอร์จะถูกตัดการเชื่อมต่อ ในเวลานี้เซิร์ฟเวอร์จะกระตุ้นเหตุการณ์การตัดการเชื่อมต่อและไคลเอ็นต์ตัดการเชื่อมต่อ