节点聊天服务器:只有第一台计算机可以看到所有人
Node Chat Server: Only the first computer sees everyone
第一台计算机能够看到每个人进入房间的日志,但是新的计算机看不到之前发生了什么。
服务器 var clientMessages = {};
socket.on("message", function (data) {
var parsed = JSON.parse(data);
console.log("parsed id " + parsed.id);
if (parsed.type === "join") {
// A new client has joined.
// First, send them all the changes for all the current synths that are in the chat.
var jsonstringy = JSON.stringify({ type: "history", value: clientMessages});
socket.send(jsonstringy);
// Now create a new record to store all changes sent to this synth.
clientMessages[parsed.id] = [parsed];
console.log(clientMessages);
} else if (parsed.type === "leave") {
delete clientMessages[parsed.id];
} else {
clientMessages[parsed.id].push(parsed);
}
});
表示push(parsed);有时会抛出错误并使服务器崩溃。
前端位于此处。
您只向接收消息的套接字发送数据;您需要对所有套接字进行广播,语法为:
var srv = require('http').createServer().listen(8080);
var io = require('socket.io')(srv);
function sendToAll(topic, data) {
io.sockets.in(topic).emit(topic, data); // <-- this sends the data to all sockets subscribed to the topic
}
当您收到消息时,请记住将套接字订阅到主题/消息:
socket.join(topic);
相关文章:
- 一台特定计算机的Ajax请求数据未定义/失败
- 通过开机自检将 XML 发送到另一台服务器
- 将页面正文发送到另一台服务器
- 自动打开另一台显示器上的浏览器窗口
- 从另一台服务器安全地从JS发送到PHP
- Web应用程序的体系结构/设计,对另一台服务器进行了大量Ajax调用
- 将 mp3 文件从另一台服务器下载到我的服务器
- PDF.js:从另一台服务器读取文件
- 当本地主机服务器提供实际页面时,如何使用 socket.io 与另一台服务器通信
- 安装 Node.js 在服务器上从同一网络上的另一台计算机访问节点
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- 如何使用JavaScript或jQuery从另一台服务器解析XML
- JavaScript可以用于将文件推送到另一台机器或web服务吗
- 从另一台电脑访问.net web api
- 从另一台服务器获取node.js中的服务映像
- 正在将大型文件从nodejs上载到另一台服务器
- 如何使用AJAX从另一台服务器获取时间
- node-js-mongodb回调不起作用-下面的代码在我的笔记本电脑上起作用,但在另一台电脑上不起作用
- 将客户端数据发送到另一台计算机
- 使用Javascript在网页上显示另一台计算机的时间