何时使用socket.io以及何时使用ajax

2023-11-27

我一直在nodejs 中编程,研究了如何使用socket.io 和ajax 调用节点服务器。 socket.io 是为了取代 ajax 而设计的吗?我很想知道在哪些情况下使用 socket.io 比较好,哪些 ajax 更好。感谢您的意见。


嗯,web 套接字(通过 socket.io)提供的 ajax 所缺乏的主要功能之一是服务器推送。因此,使用 ajax,如果您想了解服务器上的新事件(例如,不同的用户向您发送了一条消息),您需要进行服务器轮询,这意味着您以相对频繁的周期性循环发送 ajax 请求。大多数情况下,服务器会响应没有新内容,但偶尔当有新内容时,客户端可以了解它。

Web 套接字允许服务器主动向客户端推送通知,而无需轮询。因此,如果您的应用程序有任何类型的信息需要在服务器上启动并仅显示在浏览器中,那么 Web 套接字是一个更好的解决方案。

  • Submitting data to the server in request/response model
    • ajax 或 web sockets 本质上是等价的,传统形式的 POSTS 也可以
  • Submitting events to the server in an event stream model
    • Web 套接字是最好的,可以通过 ajax 进行模拟
  • Pushing events from server to browser
    • Web 套接字是最好的,可以通过 ajax 长轮询、Flash 等进行模拟(socket.io 有几个后备方案,如果真正的 Web 套接字不可用,它可以尝试使用)。
  • older browsers, some mobile platforms
    • 不存在网络套接字支持,因此 ajax 是您的后备方案
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时使用socket.io以及何时使用ajax 的相关文章

  • 在 Google App Engine 上连接 Mongoose

    我已在 Google App Engine 上成功部署了自定义 Node js 应用程序 但是 我在启动应用程序时遇到问题 因为猫鼬在尝试连接时超时 令人沮丧的是 猫鼬在我的本地计算机上以完全相同的参数连接得很好 我的 MongoDb UR
  • “gulp”不被识别为内部或外部命令

    我正在尝试使用Gulp http gulpjs com and Node Js https nodejs org en 流式传输我的生产过程中缩小和连接 CSS JS 文件的过程 这是我所做的 我安装了Node Js https nodej
  • 如何找到您在服务器中的加入位置

    寻找一种方法来查找您何时按位置加入服务器 例如 如果我是服务器的所有者 我将是 1 因为我先加入 然后如果我在所有者之后加入 我将是 2 如果我在 20 人加入后加入 我将是 21 依此类推 有谁知道如何在 Node Js 中解决这个问题
  • json_encode 返回 200 且未定义

    我想要一个代码来添加或删除数据库书签 代码已准备就绪 它可以正确地从数据库书签中添加和删除书签 但是当我调用该函数时 它会不断返回json error反而json success即使代码有效 我想知道代码 我从其他地方获得并改编的 有什么问
  • 使用他们的 API 创建一个基本的 MailChimp 注册表单

    我是 MailChimp 的新手 需要一些帮助 通过他们的基本时事通讯注册表单 您只需将一些预先打包的 HTML 嵌入到您的页面中即可 然而 这样做的问题是 单击 提交 会重定向到 MailChimp 页面 我不想重定向到 MailChim
  • Spring Security 的 AJAX 请求给出 403 Forbidden

    我有一个基于spring boot spring security thymeleaf的网站 在某些情况下我也使用ajax 问题 我在 Spring Security 中使用表单登录安全性 在浏览器中 登录后我可以使用rest API GE
  • 使用 Jquery Ajax 将数据从 jsp 发送到 struts2 操作类

    我需要使用 jquery Ajax 将表单数据从 jsp 传递到 struts2 并从 Struts2 操作类接收回 JSON 数据 我已经给出了下面的代码 当我传递 AJAX 数据时 url search action searchTex
  • 为 Promise 编写循环的正确方法。

    如何正确构造循环以确保满足以下条件承诺电话和被束缚的记录器 log res 通过迭代同步运行 蓝鸟 db getUser email then function res logger log res this is a promise 我尝
  • 如果验证失败,如何在 ASP.NET MVC 中阻止 jquery ajax 提交

    我在用ASP NET 5 MVC RC1 我的 ASP NET MVC 使用的 jquery 验证插件是默认 ASP NET 5 模板项目使用的标准 jquery validate js jQuery Validation Plugin v
  • crypto createHMAC 输出根据 Nodejs 版本而有所不同

    我在升级节点版本时遇到加密模块问题 创建的HMAC取决于节点的版本 您将在下面找到重现该问题的代码片段 如果我将密钥编码为 BASE64 或任何 HMAC 不依赖于 node js 版本 如果我将其编码为二进制 则当我更改 Node js
  • Ajax调用完成后执行函数

    我是 Ajax 新手 我尝试在使用 for 循环时使用 Ajax Ajax 调用之后 我正在运行一个使用 Ajax 调用中创建的变量的函数 该函数只执行两次 我认为 Ajax 调用可能没有足够的时间在循环开始之前进行调用 有没有办法在运行
  • Firebase CLI 部署错误:“现在在 Firebase CLI 中禁用部署到 Node.js 10 以下的运行时。”

    我有一个使用 Cloud Functions for Firebase 的项目 在将 Firebase CLI 更新到版本 9 0 0 后 我收到一条错误消息 错误 函数目录中的 package json 有一个引擎字段 不受支持 有效的选
  • 处理从nodejs到mongo db的连接丢失

    当nodejs和mongodb服务器之间的连接丢失时 我试图得到 连接丢失 或类似的信息 我使用本机驱动程序并具有以下代码 var mongo require mongodb var server new mongo Server host
  • DataTables 第 2 页的分页未调用放大弹出窗口

    所以我有这个启用分页的数据表 我编码了一种方式 以便用户可以编辑表的行 当用户调用它在放大弹出窗口中打开的编辑页面时 它在第 1 页 从第 2 页起都运行良好 DataTable 及其前面停止调用 Magnific Popup 我只是不明白
  • 可注入的“PlatformLocation”需要使用JIT编译器进行编译,但“@angular/compiler”不可用

    我的 Angular 应用程序通过 Node 16 13 0 提供服务 更新到 Angular 13 后 我收到以下错误 可注入 class PlatformLocation 的 JIT 编译失败 文件 Users btaylor work
  • 将项目中的node_modules集中到子项目中

    是否可以以在中心点上拥有所需模块的方式配置 grunt 我有以下项目结构 Project subproject subproject subproject 我通过 grunt 构建项目的所有子项目 并且我也可以为自己构建每个子项目 目前 我
  • 如何使用公共客户端颁发的令牌查询keycloak资源权限

    我有一个受 keycloak 保护的前端 Javascript 客户端 前端应用程序的 Keycloak 客户端类型为Public并打电话给blog gui 我还有一个受保护的 APIConfidential客户端名为 blog api 其
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 猫鼬中的数组过滤器

    将查询转换为节点 arrayfilter 在 mongoose 中工作的版本或者如何在节点应用程序中运行它们 db getCollection student update id ObjectId 5a377d62d21a3025a3c3a
  • if(err) 抛出错误;错误:非法参数:字符串,未定义

    我现在有 module exports comparePassword function candidatePassword hash callback console log candidatePassword console log h

随机推荐

  • 需要一个正则表达式来排除某些字符串

    我正在尝试获取一个匹配的正则表达式 somefile 1 txt somefile 2 txt somefile anything txt 但不匹配 somefile 16 txt I tried somefile 16 txt 运气不好
  • 要么或需要验证

    我想使用 ComponentModel DataAnnotations 验证两个属性中至少之一具有值 我的模型看起来像这样 public class FooModel public string Bar1 get set public in
  • Flutter 中的滑动视图

    我正在尝试在 flutter 中制作类似于谷歌 苹果地图屏幕的东西 我刚刚开始在 Flutter 中进行实验 我很难理解 可拖动小部件 有人可以给我他们如何制作幻灯片视图的示例代码 我可以学习吗 我找不到 还有向上滑动面板您可以使用 Flu
  • 如何无限滚动抓取网站?

    我想爬行这个网站 我写了一个蜘蛛 但它只爬首页 即前 52 项 我试过这段代码 from scrapy spider import BaseSpider from scrapy selector import HtmlXPathSelect
  • 使用facet_wrap时如何减少facet标签之间的垂直间距?

    我使用facet wrap绘制了按两个因素分组的二维面板 最小的例子 library ggplot2 ggplot mpg aes displ hwy geom point facet wrap cyl drv 每个面板顶部的标签有两行 我
  • 命令提示符和cmd有什么区别?

    我有 Windows 7 Windows 8 和 Windows 10 系统 它们的行为都很相似 当我在开始菜单中键入命令提示符并按 Enter 键时 会出现一个标题为 命令提示符 的窗口 我给了它蓝色背景和绿色文本 当我在命令行中输入 s
  • 是否可以更改 Selector xml 中 Button 的左侧可绘制部分?

    我有一个分配给按钮的左可绘制对象以及一个背景可绘制对象 我想提供一个选择器 以便当用户按下 聚焦 禁用按钮时 其外观会发生变化 我用于左侧可绘制的图像是一个红色的 x 我希望在按下或禁用按钮时将其替换为灰色 X 使用选择器可以做到这一点吗
  • Xcode 7.3:导入模块显示有删除线

    将 Xcode 升级到 7 3 后 我发现一些模块在导入时被删除 如下截图所示 But after adding the module so just pressing enter everything is fine What does
  • 蚂蚁路径风格图案

    规则是什么蚂蚁路径风格图案 令人惊讶的是 Ant 网站本身的信息却很少 蚂蚁风格的路径模式匹配spring框架 映射使用以下规则匹配 URL 匹配一个字符 匹配零个或多个字符 匹配路径中的零个或多个 目录 spring a z 匹配正则表达
  • DropDownList 不会在 SelectedIndexChanged 上回发

    我正在编写一个 ASP Net Web 表单 其中包含一些 DropDownList 控件 然后用户更改下拉列表之一中的选定项目 ASP Net 似乎不会处理 SelectedIndexChanged 事件 直到通过单击 提交 按钮提交表单
  • 有没有办法使用 GPG 密钥在 Git 中“自动签名”提交?

    有没有一种简单的方法可以让 Git 始终对创建的每个提交或标签进行签名 我尝试过类似的东西 alias commit commit S 但这并没有达到目的 我不想安装不同的程序来实现这一点 可以轻松实现吗 只是一个附带问题 也许提交不应该被
  • 如何从Python 2.7中以空格分隔的字符串中提取整数?

    我想从字符串中提取整数 其中整数由空格分隔 即 我怎么能这么做 Input I 1 15 163 132 Result 1 15 163 132 所以我写了一个像这样的函数 def getIt aStr collect i 0 while
  • Spring Hibernate Template 执行方法为 Oracle 上的计数查询返回什么对象类型?

    当针对 Oracle 数据库运行时 以下对象的运行时类型是什么春季休眠模板 Spring 2 5 和 Hibernate 3 3 2GA 代码返回其中 SQL 查询是一个计数查询 例如select count from table Stri
  • SQL 中的常量和包含文件

    是否可以在 TSQL 存储过程中包含一组 常量 值 我遇到一种情况 我使用整数字段来存储位值 并且我有一小组 常量 值 用于针对该字段插入 选择 DECLARE CostsCalculated int 32 DECLARE Aggregat
  • 使用 Mysql 检索最后插入的 id

    再会 我愿意检索 Mysql 中新插入的行的 id 值 我知道有 mysqli insert id 函数 但是 我无法指定表格 如果同时进行查询 可能会存在检索到错误 id 的风险 我正在使用 Node js MySQL 我不想冒险查询最高
  • 从 applicationContext.xml 读取环境变量

    我需要读取 web xml 中定义的环境变量
  • 静态方法中的局部变量也是静态的吗?

    我想知道如果我们在静态方法中声明它们 所有局部变量都会变成静态吗 例如 public static void A int x 3 2 changeX x for int i 0 i lt x length i System out prin
  • 如何在 Sympy 中进行函数组合?

    我想做类似的事情h f g x 并能够对 h 进行微分 例如h diff x 仅针对一个功能 例如h cos x 这实际上是可能的 并且文档说得很清楚 但对于函数组合则不太清楚 如果您已经这样做了 请向我展示一个示例或将我链接到相关文档 如
  • Guice 在 UI 线程之外创建 Swing 组件有问题吗?

    我正在使用 Google Guice 作为 IOC 容器开发 Java Swing 应用程序 一切进展顺利 存在一些用户界面问题 当标准 L F 替换为推送像素时 由于 Guice 的 Swing 组件在 UI 线程之外创建 因此 Subs
  • 何时使用socket.io以及何时使用ajax

    我一直在nodejs 中编程 研究了如何使用socket io 和ajax 调用节点服务器 socket io 是为了取代 ajax 而设计的吗 我很想知道在哪些情况下使用 socket io 比较好 哪些 ajax 更好 感谢您的意见 嗯