javascript - 没有 Socket.IO 的 Node.js 聊天

标签 javascript json node.js socket.io

我刚刚开始学习 Node.js,当我学习 fs.watchFile() 方法时,我想知道是否可以用它(和 fs.writeFile())有效地构建一个聊天网站,例如 Socket.IO,它是稳定的,但我相信不是 100% 稳定(有几个回退,包括 flash)。

使用 fs.watchFile 或许也可以用来非常简单地保存聊天历史记录(因为可以当场使用 JSON)。

聊天文件可以采用 JSON 格式,这样只有最后一个聊天者的消息才会被带到 DOM(或者其他任何可以在文件更新时有效地“获取”消息的方式)。

我还没有尝试过,因为我还需要了解更多关于 Node 的知识,甚至更多才能将它与 Socket.IO 进行比较,但是你对此有何看法?这可能是一种高效/稳定的聊天方式吗?

最佳答案

fs.watchFile() 可用于监视本地文件系统(在服务器上)中文件的更改。这无法解决您更新浏览器中所有客户端聊天消息的需求。您仍然需要 Web 套接字、AJAX 或 Flash(或 socket.io,它可以处理所有这些)。

您通常可以在客户端中执行的操作是尝试使用 Web 套接字。如果浏览器不支持它们,请尝试使用 XMLHttpRequest。如果失败,则退回到 Flash。这需要大量的编程工作,并且也必须由 Node.js 服务器来处理。 Socket.io 会为您做到这一点。

此外,socket.io 非常稳定。回退到 Flash 并不是因为它不稳定,而是因为浏览器缺乏对更好解决方案(如 Web Sockets)的支持。

关于javascript - 没有 Socket.IO 的 Node.js 聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19418893/

相关文章:

javascript - 如何在express js中将url参数传递给模板

MySQL 从 html 中的 node.js 结果,通过 react.js

node.js - Angular 和 Node.JS Express 如何在同一个端口运行?

javascript - 匹配字符串,除非它在方括号内

javascript - 如何将现有 json 对象数组的某些对象复制到新的 json 数组

php - 将 PHP 数组从 mysql 格式转换为 JSON 格式

PHP - 如何使用以 "$"开头的字段遍历 JSON 数组

javascript - JavaScript 中的时间/小时语法 - 如何处理不在整点的时间

javascript - 使用 Google Closure 从 LabelInput 访问数据

javascript - 如何获取按钮的数据属性并显示该页面?