Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web套接字在Http上运行意味着什么?_Javascript_Node.js_Http_Websocket_Socket.io - Fatal编程技术网

Javascript Web套接字在Http上运行意味着什么?

Javascript Web套接字在Http上运行意味着什么?,javascript,node.js,http,websocket,socket.io,Javascript,Node.js,Http,Websocket,Socket.io,WebSocket提供了一个双向、全双工通信通道,通过单个TCP/IP套接字连接在HTTP上运行 Http被认为是单向的,比websockets慢,那么Web套接字在Http上运行意味着什么呢 在node.js中,我看到首先创建了一个http服务器,然后socket.io开始在该服务器上运行 这是唯一的工作方式吗?为什么要这样做?使用“结束”一词是错误的。WebSocket不通过HTTP进行操作。不过,这篇文章后来确实正确地解释了升级分离 WebSocket协议是一个独立的基于TCP的协议。只

WebSocket提供了一个双向、全双工通信通道,通过单个TCP/IP套接字连接在HTTP上运行

Http被认为是单向的,比websockets慢,那么Web套接字在Http上运行意味着什么呢

在node.js中,我看到首先创建了一个http服务器,然后
socket.io
开始在该服务器上运行

这是唯一的工作方式吗?为什么要这样做?

使用“结束”一词是错误的。WebSocket不通过HTTP进行操作。不过,这篇文章后来确实正确地解释了升级分离

WebSocket协议是一个独立的基于TCP的协议。只是 与HTTP的关系是它的握手由HTTP解释 服务器作为升级请求

io库可以通过多个传输进行双向消息传递,WebSocket就是其中之一。它还支持在websocket连接不可能时使用的HTTP长轮询

Socket.IO不是WebSocket实现。虽然Socket.IO确实 尽可能使用WebSocket作为传输,它会添加额外的 将元数据添加到每个数据包中。这就是为什么WebSocket客户机不会 能够成功连接到Socket.IO服务器和Socket.IO 客户端也将无法连接到普通WebSocket服务器

io还设置了中间件,以便在piggy备份到
http
服务器时为客户端提供Javascript内容并处理长轮询请求。这使得它更易于使用,意味着您不需要管理静态Javascript依赖项