หลังจากลูกค้าหลายรายสร้างการเชื่อมต่อกับเซิร์ฟเวอร์เซิร์ฟเวอร์ Socket.io () มีแอตทริบิวต์ Sockets และค่าแอตทริบิวต์คือวัตถุซ็อกเก็ตทั้งหมดที่สร้างการเชื่อมต่อกับไคลเอนต์ คุณสามารถใช้วิธีการส่งหรือวิธีการปล่อยของวัตถุเพื่อออกอากาศข้อความไปยังลูกค้าทั้งหมด
io.sockets.send ("แก้ไขผู้ใช้);
io.socket.emit ("เข้าสู่ระบบ", ชื่อ);
กรณี
Server.js รหัส:
การคัดลอกรหัสมีดังนี้:
var express = ต้องการ ("express");
var http = ต้องการ ("http");
var sio = ต้องการ ("socket.io");
var app = express ();
var server = http.createServer (แอป);
app.get ("/", function (req, res) {
Res.SendFile (__ dirname+"/index.html");
-
Server.Listen (1337, "127.0.0.1", function () {
console.log ("เริ่มฟัง 1337");
-
var io = siO.Listen (เซิร์ฟเวอร์);
ชื่อ var = [];
io.sockets.on ("การเชื่อมต่อ" ฟังก์ชั่น (ซ็อกเก็ต) {
Socket.emit ("เข้าสู่ระบบ", ชื่อ);
socket.on ("เข้าสู่ระบบ", ฟังก์ชั่น (ชื่อ) {
Names.push (ชื่อ);
io.sockets.emit ("เข้าสู่ระบบ", ชื่อ);
-
-
การคัดลอกรหัสมีดังนี้:
<! 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 ("เข้าสู่ระบบ", ฟังก์ชั่น (ชื่อ) {
var str = "";
names.foreach (ฟังก์ชั่น (ชื่อ) {
str+= "ผู้ใช้"+ชื่อ+"เข้าสู่ระบบ <br/>";
-
document.getElementById ("ผลลัพธ์"). innerhtml = str;
-
ฟังก์ชั่นเพิ่ม () {
socket.emit ("เข้าสู่ระบบ", document.getElementById ("ชื่อเล่น"). ค่า);
-
</script>
</head>
<body>
ชื่อเล่น <อินพุต type = "text" id = "ชื่อเล่น" />
<div id = "ผลลัพธ์"> </div>
<อินพุต type = "ปุ่ม" onclick = "เพิ่ม ()" value = "เข้าสู่ระบบ" />>>
</body>
</html>
ผลการทำงาน:
เข้าสู่ระบบ Google Chrome และคุณสามารถเห็นผลลัพธ์เดียวกันใน Firefox
นี่เป็นปรากฏการณ์ที่ยอดเยี่ยมและเอฟเฟกต์ที่ทำให้ฉันประหลาดใจมาก
เป็นโหนดที่ยอดเยี่ยม