Questions tagged «websocket»

WebSocket是建立在TCP套接字之上的API,并且是用于客户端和服务器之间的双向全双工通信的协议,而没有HTTP的开销。

4
什么是长轮询,Websocket,服务器发送事件(SSE)和Comet?
我已经尝试阅读一些文章,但是我对这些概念还不太清楚。 有人想向我解释一下这些技术是什么吗? 长轮询 服务器发送的事件 网络套接字 彗星 我每次遇到的一件事是,服务器保持打开连接并将数据推送到客户端。连接如何保持打开状态,客户端如何获取推送的数据?(客户端如何使用数据,也许一些代码可能会有所帮助?) 现在,我应该为实时应用程序使用哪一个。我已经听到很多关于websockets的信息(使用socket.io [一个node.js库]),但是为什么不使用PHP?


7
socket.io和websockets之间的区别
node.js中的socket.io和websockets有什么区别? 它们都是服务器推送技术吗?我唯一感到的是 socket.io允许我通过指定事件名称来发送/发送消息。 对于socket.io,来自服务器的消息将到达所有客户端,但对于websockets中的消息,我被迫保留所有连接的数组并循环遍历,以将消息发送给所有客户端。 另外,我想知道为什么Web检查器(例如Chrome / firebug / fiddler)无法从服务器捕获这些消息(来自socket.io/websocket)? 请澄清一下。

3
与Node.js一起使用哪个websocket库?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 当前,有大量用于node.js 的Websocket库,最受欢迎的似乎是: https://github.com/Worlize/WebSocket-Node https://github.com/einaros/ws https://github.com/LearnBoost/engine.io https://github.com/learnboost/socket.io https://github.com/sockjs 但是我找不到它们之间的任何可靠的具体比较……显然Socket.io很棒,但是已经过时并且构建失败。ws和websocket-node都声称它们是最快的。engine.io似乎是新的,但比轻巧的武器要重得多。 如果我们或某人可以汇总一个答案,作为使用哪个套接字库以及何时使用以及它们之间的比较的指南,那将是惊人的。

6
WebSockets协议与HTTP
关于websocket和HTTP的博客和讨论很多,许多开发人员和站点强烈主张websockets,但我仍然不明白为什么。 例如(网络套接字爱好者的参数): HTML5 Web套接字代表了Web通信的下一个发展趋势-一种全双工,双向通信通道,它通过Web上的单个套接字进行操作。(http://www.websocket.org/quantum.html) HTTP支持流传输:请求正文流(您在上传大文件时正在使用它)和响应正文流。 与WebSocket建立连接期间,客户端和服务器每帧交换数据,每帧2字节,而连续轮询时HTTP头为8千字节。 为什么这2个字节不包括tcp且在tcp协议开销下? GET /about.html HTTP/1.1 Host: example.org 这是〜48个字节的http标头。 http分块编码-https : //en.wikipedia.org/wiki/Chunked_transfer_encoding : 23 This is the data in the first chunk 1A and this is the second one 3 con 8 sequence 0 因此,每个块的开销并不大。 同样,这两个协议都可以通过TCP进行工作,因此所有具有长寿命连接的TCP问题仍然存在。 问题: 为什么websockets协议更好? 为什么实施而不是更新http协议?
329 ajax  http  websocket  comet 

4
在什么情况下,AJAX长/短轮询优于HTML5 WebSockets?
我正在为朋友构建一个小型聊天应用程序,但是不确定如何及时获取信息,而这不像强制刷新页面那样手动或基本。 目前,我正在使用简单的AJAX来实现此功能,但是这样做的缺点是,在经过短计时器后会定期命中服务器。 在研究长/短轮询时,我遇到了HTML5 WebSockets。这似乎很容易实现,但是我不确定是否存在一些隐藏的缺点。例如,我认为WebSockets仅受某些浏览器支持。我应该知道WebSockets还有其他缺点吗? 既然两种技术似乎都做同样的事情,那么在哪种情况下,一个人会优先使用一个?更具体地说,HTML5 WebSockets是否已使AJAX长/短轮询不再适用,还是有充分的理由偏爱AJAX而不是WebSockets?


9
HTTP / 2是否会使websocket过时?
我正在学习HTTP / 2协议。这是带有小消息帧的二进制协议。它允许通过单个TCP连接进行流多路复用。从概念上讲,它似乎与WebSockets非常相似。 是否有计划淘汰Websocket,并用某种无头HTTP / 2请求和服务器启动的推送消息替换它们?还是WebSockets可以补充HTTP / 2?
268 websocket  http2 

8
WebRTC与Websockets:如果WebRTC可以处理视频,音频和数据,为什么我需要Websocket?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 因此,我正在寻求构建一个允许视频,音频和文本的聊天应用程序。我花了一些时间研究Websockets和WebRTC来决定使用哪个。由于WebRTC有大量的视频和音频应用程序,这听起来像是一个合理的选择,但是我还应该考虑其他事项吗?随时分享您的想法。 像: 由于是新的,因此WebRTC仅在某些浏览器中可用,而WebSockets似乎在更多的浏览器中可用。 可伸缩性-Websockets使用服务器进行会话,而WebRTC似乎是p2p。 多重/多个聊天室-用于Google+环聊中,我仍在查看演示应用程序的实施方法。 服务器-Websockets需要RedisSessionStore或RabbitMQ才能在多台计算机上扩展。
219 websocket  webrtc 


3
好的初学者教程到socket.io?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我对Web开发领域非常陌生,并且加入了潮流,因为我发现HTML5的概念非常有趣。我对使用画布很有信心,现在想转到其中的websockets。当我们要使用Web套接字时,我已经了解到socket.io是迄今为止可以使用的框架。 任何有关完全虚拟的教程和示例所参考的指针将不胜感激!

7
当WebSockets可用时,为什么要使用AJAX?
我已经使用WebSockets一段时间了,我选择使用Node服务器和WebSockets为我在大学的最后一年的项目创建一个敏捷项目管理工具。我发现使用WebSockets可以使我的应用程序每秒处理的请求数量增加624%。 但是,自启动项目以来,我已经阅读了安全漏洞,并且一些浏览器默认选择禁用WebSocket。 这使我想到了一个问题: 当WebSocket似乎在降低延迟和资源开销方面做得如此出色时,为什么还要使用AJAX?AJAX有什么比WebSocket更好的功能吗?

11
Websockets客户端API中的HTTP标头
看起来很容易使用支持此功能的任何HTTP标头客户端向您的websocket客户端添加自定义HTTP标头,但是我找不到如何使用JSON API进行操作。 但是,似乎应该在规范中支持这些标头。 任何人都知道如何实现它? var ws = new WebSocket("ws://example.com/service"); 具体来说,我需要能够发送HTTP授权标头。

12
使用socket.io和node.js将消息发送到特定客户端
我正在使用socket.io和node.js,直到现在看起来还不错,但我不知道如何从服务器向特定客户端发送消息,如下所示: client.send(message, receiverSessionId) 但是无论是.send()还是.broadcast()方法似乎都无法满足我的需求。 我发现可能的解决方案是,该.broadcast()方法将不发送消息的SessionId数组作为第二个参数,因此我可以将此时连接了所有SessionId的数组传递给服务器,除了那个我希望发送邮件,但是我觉得必须有一个更好的解决方案。 有任何想法吗?

5
套接字和websocket之间的区别?
我正在构建需要使用套接字连接与另一个应用程序进行通信的Web应用程序。这对我来说是新领域,因此请确保套接字与websockets不同。看来它们只是概念上相似。 发问,因为最初我打算使用Django作为我项目的基础,但是在上面链接到的SO帖子中,很清楚地表明,websocket是不可能的(或者至少不可靠,即使使用django-websockets之类的东西也是如此) )使用首选的Django设置(Apache和mod_wsgi)。但是我发现其他一些文章可以随便导入Python的套接字模块,就像获取服务器的主机名一样简单。 所以: 他们真的不同吗? 有什么理由不将Django用于依赖与外部服务器建立套接字连接的项目吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.