استخدم socket.io لإنشاء خادم socket.io. ومع ذلك ، يعتمد الخادم على خادم HTTP الذي تم إنشاؤه بالفعل.
بعد تشغيل خادم HTTP ، استخدم طريقة الاستماع لإرفاق Socket.io Server بخادم HTTP.
نسخة الكود كما يلي:
var sio = required ("scoket.io") ؛
var socket = sio.listen (server) ؛
Socket هو خادم Socket.io الذي تم إنشاؤه على الخادم.
عندما يقوم العميل بإنشاء اتصال مع الخادم ، يتم تشغيل حدث اتصال خدمة Socket.io.
نسخة الكود كما يلي:
Socket.on ("الاتصال" ، الدالة (المقبس) {
}) ؛
معلمة المقبس في وظيفة رد الاتصال هي كائن منفذ المقبس الذي ينشئ اتصالًا بين الخادم والعميل.
عند استلام رسالة أرسلها العميل ، يتم إصدار حدث رسالة لكائن منفذ المقبس.
نسخة الكود كما يلي:
Socket.on ("Message" ، Function (msg) {
}) ؛
معلمات وظيفة رد الاتصال هي الرسائل التي أرسلها العميل.
يمكنك استخدام Socket.send (MSG) لإرسال رسالة إلى العميل.
يتم تشغيل حدث فصل عندما يتم فصل اتصال جانب العميل من جانب الخادم.
نسخة الكود كما يلي:
Socket.on ("disconnect" ، funciton () {
}) ؛
وظيفة رد الاتصال هذه لا تطبق أي معلمات.
رمز Server.js Server.js:
نسخة الكود كما يلي:
var http = require ("http") ؛
var sio = required ("socket.io") ؛
var fs = require ("fs") ؛
var server = http.createserver (function (req ، res) {
Res.Writehead (200 ، {"content-type": "text/html"}) ؛
res.end (fs.readfilesync ("./ index.html")) ؛
}) ؛
server.listen (1337) ؛
var socket = sio.listen (server) ؛
Socket.on ("الاتصال" ، الدالة (المقبس) {
console.log ("إنشاء اتصال العميل") ؛
Socket.send ("Hello") ؛
Socket.on ("Message" ، Function (msg) {
console.log ("تلقيت رسالة:"+msg) ؛
}) ؛
Socket.on ("disconnect" ، function () {
console.log ("Disconnect 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 ("Message" ، Function (Data) {
console.log (البيانات) ؛
Socket.send ("رسالة مقبولة.")
}) ؛
Socket.on ("disconnect" ، function () {
console.log ("فصل جانب الخادم.") ؛
}) ؛
</script>
</head>
<body>
</body>
</html>
يتم تزويد هذا الرمز: /socket.io/socket.io.js بمكتبة فئة Socket.io من جانب الخادم ، وليس هناك حاجة بالفعل إلى وضع ملف Socket.io.js على العميل.
في ملف البرنامج النصي ، استخدم أولاً طريقة io.connect () للاتصال بخادم Server Socket.io.
تقوم هذه الطريقة بإرجاع كائن منفذ مقبس العميل الذي ينشئ اتصالًا بالخادم.
عند استلام رسالة من الخادم ، يتم تشغيل حدث رسالة كائن منفذ مقبس العميل.
نسخة الكود كما يلي:
Socket.on ("Message" ، Function (msg) {
}) ؛
MSG هي البيانات المرسلة بواسطة الخادم ؛
يمكنك أيضًا استخدام طريقة send () لكائن مقبس العميل لإرسال البيانات إلى الخادم.
نسخة الكود كما يلي:
Socket.send (msg) ؛
عندما ينفصل الخادم ، يتم تشغيل حدث فصل كائن منفذ مقبس العميل.
نسخة الكود كما يلي:
Socket.on ("disconnect" ، function () {
})
وظيفة رد الاتصال هذه لا تستخدم أي معلمات.
يلاحظ:
آلية رسالة العميل هي بالضبط نفس آلية معالجة الرسائل من جانب الخادم. لأن Socket.io يضمن أن يشارك العميل والخادم نفس واجهة برمجة التطبيقات.
النتائج بعد الجري:
عند إغلاق المتصفح ، يتم فصل اتصال الخادم. في هذا الوقت ، يقوم الخادم بإعداد حدث قطع الاتصال ويفصل العميل.