【问题标题】:Node JS Socket.IO and HTTP requests [closed]Node JS Socket.IO 和 HTTP 请求 [关闭]
【发布时间】:2020-11-05 23:10:17
【问题描述】:

(我是初学者)。

当我可以使用 Socket.IO 库时,为什么我应该在 Node JS 中使用 http 请求 - 响应? http请求-响应有哪些优点?

谢谢大家。

【问题讨论】:

  • 当您可以使用 SOAP、SMTP、SNMP、FTP、Telnet、SSH、SCP、SMB、NFS、RTSP、BGP、RPC、SIP、BitTorrent、BOOTP、DNS 时,为什么还要使用 Socket.IO ,IMAP?

标签: javascript node.js http socket.io backend


【解决方案1】:

Web-sockets(Socket.io) 和 HTTP 都是通信协议。 HTTP 使用 HTTP:// 或 HTTPS:// 而 web-socket 使用 ws:// 或 wss:// 与客户端通信。

Web 套接字旨在保持与客户端的实时连接。但是 HTTP 没有与客户端保持实时连接。它响应客户端的请求,然后终止与客户端的连接。

因此,如果服务器只提供不会实时更改的内容,或者客户端不希望实时看到更改,那么与客户端建立实时连接是对服务器资源的浪费(服务器负载,交通等)。

示例:认为您正在 google 中搜索某些内容。谷歌中出现的搜索结果与同一关键字在 1 小时(或更长时间)后出现的结果相同。搜索结果不是实时变化的。所以想想如果谷歌服务器使用套接字连接而不是与客户端的 HTTP 连接。 Google 服务器必须免费与客户端保持数十亿的同时连接。

另请阅读performance comparison between web-sockets and HTTP.

【讨论】:

  • 非常感谢。你的回答很好。
【解决方案2】:

Http 请求是 Web 上的主要通信方式。客户端(您的浏览器)使用它们向服务器请求某些内容。

Socket.IO 用于客户端和服务器之间的 2 路通信。 (Socket.IO 使用 Websockets 进行通信,如果客户端不支持,则使用其他后备方法)

这里的问题是你在建造什么?一个网站 => 使用简单的请求。一款网络游戏 => Socket.IO

如果你需要双向通信,那么使用 Socket.IO,过度请求就可以了;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多