Node.js http Post和套接字IO

Node.js http Post和套接字IO,node.js,post,asynchronous,websocket,socket.io,Node.js,Post,Asynchronous,Websocket,Socket.io,现在我正在学习如何使用node.js构建单页web应用程序。当我谈到服务器和客户端之间的通信部分时,我对http post请求和web套接字通信之间的区别感到困惑 以下是我的理解: 像socket.io这样的Web套接字是异步通信,而POST是同步通信方法 io主要用于处理实时任务,如html游戏或动态在线聊天,或播送一些信息 为了在某些用户注册某个网站时验证表单,立即检查用户名是否已被使用是非常好的,我认为这是使用socket.io实现的 例如,在登录页面中,当我按下用户名和密码,然后按下“

现在我正在学习如何使用node.js构建单页web应用程序。当我谈到服务器和客户端之间的通信部分时,我对http post请求和web套接字通信之间的区别感到困惑

以下是我的理解:

  • 像socket.io这样的Web套接字是异步通信,而POST是同步通信方法
  • io主要用于处理实时任务,如html游戏或动态在线聊天,或播送一些信息
  • 为了在某些用户注册某个网站时验证表单,立即检查用户名是否已被使用是非常好的,我认为这是使用socket.io实现的
  • 例如,在登录页面中,当我按下用户名和密码,然后按下“登录”按钮后,我可以使用socket.io中的emit things来传输包含这些信息的JSON文件。当我们检查这些信息并发回“true”或“false”等标志字符串以指示登录是否成功时
所以我的问题是:

  • 为什么我们仍然使用HTTPPOST进行登录和注册
  • socket.io比HTTP POST好吗
  • 为什么不用socket.io替换HTTP POST
  • 对于一些大文件,我还没有进入这些部分,所以我不知道


    以下是一些补充:

    在阅读了一篇文章之后,我发现我似乎认为WebSocket是HTTP的替代品。事实并非如此。这是一个扩展


    我想这是我的第三个问题,为什么不用socket.io替换HTTP POST。

    HTTP POST与登录和注册是有用的,因为它不会将url存储在浏览器历史记录或书签中,因此通过POST这种方式,邪恶的人们无法通过历史记录或书签截获用户/密码详细信息,但通过GET是可能的。我已经在node.js和express.io中使用了一些应用程序,我仍然使用post来实现这一点。希望这能澄清问题的这一部分。@MDG感谢您对POST和GET之间比较的解释,用户注册时POST和using socket.io之间的比较如何?您的意思是通过socket.io发送注册/登录信息吗?或者让node.js处理post(或socket.emit)中的数据并创建帐户/确认身份验证?有点困惑你的意思:)@MDG Hi,我的意思是使用
    emit
    发送用户名和密码等数据,服务器使用node js
    socket.on
    处理数据并确认身份验证。区别在于你不是使用http而是使用websocket进行身份验证。这样做没问题。虽然我通常只是使用一个帖子并在nodejs中捕捉到,但这实际上取决于你的情况。