socket.io客户端不接收来自服务器的广播

我有一个即时消息聊天应用程序在制作,并有问题让我的客户端从我的服务器接收数据。 任何人都可以向我解释为什么发生这种情况?

app.js

var http = require("http"); var express = require("express"); var socket = require("socket.io"); var app = express(); app.use(express.static(__dirname + "/public")); var server = http.createServer(app); server.listen(8080); var io = socket.listen(server); io.sockets.on("connection", function(client) { client.on("join", function(name) { client.set("nickname", name); console.log(name + " connected."); // logs name correctly client.broadcast.emit("names", name); }); }); 

的index.html

 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="/socket.io/socket.io.js"></script> <script type="text/javascript"> var server = io.connect("http://localhost:8080"); server.on("connect", function(data) { nickname = ""; while (nickname == null || nickname.trim() == "") { nickname = prompt("Enter name"); } server.emit("join", nickname); }); server.on("names", function(data) { document.getElementById("txtNames").value = data; }); </script> </head> <body> <textarea id="txtNames"></textarea> </body> </html> 

你知道广播是什么吗? 由于来自套接字的事件而广播消息时,除了触发事件的套接字之外,消息将发送给所有连接的客户端。 你的情况也是如此。 如果你想发射names事件到你连接的客户端然后使用

socket.emit("names", name); 在你的app.js