Tag: websocket

用Websocket API取代REST API?

我有一个应用程序,其主要function通过websockets或长时间轮询实时工作。 但是,大多数网站是以REST风格编写的,这对于将来的应用程序和其他客户来说是很好的。 不过,我正在考虑从REST转移到所有网站function的websocket API。 这将使我更容易将实时function集成到网站的所有部分。 这会使得构build应用程序或移动客户端变得更加困难吗? 我发现有些人已经在做这样的东西: SocketStream

我需要一个服务器来使用HTML5的WebSockets吗?

当使用WebSockets时,我需要编写服务器代码吗? 换句话说,我的客户端应用程序中的JavaScript是否需要连接到专门的服务器,或者我现有的Apache服务器能够支持这个服务器吗?

TCP套接字和networking套接字之间的区别,还有一次

尽力了解TCP套接字和websocket之间的差异,我已经在这些问题中find了很多有用的信息: websockets和纯TCP之间的根本区别 如何从Web浏览器(客户端)build立TCP Socket连接? 等等… 在我的调查中,我经历了维基百科的这句话: Websocket与TCP的不同之处在于它启用了一个消息stream而不是一个字节stream 我不完全确定它是什么意思。 你的解释是什么?

如果持久模型(服务器数据库)由外部应用程序更改,AngularJS是否可以自动更新视图?

我刚刚开始熟悉AngularJS,但是我想要构build一个Web应用程序,当服务器端数据库中的某些内容发生变化时,该应用程序将获得实时自动修改(不刷新)的视图。 AngularJS能够为我自动处理(大部分)吗? 如果是这样,工作的基本机制是什么? 例如,你是否设置AngularJS定期轮询数据库“模型”的变化? 或者使用某种类似Comet的机制来通知AngularJS客户端代码模型已经改变? 在我的应用程序中,挑战在于其他(非Web)服务器端软件有时会更新数据库。 但是,这个问题同样适用于纯Web应用程序,您可能会有多个客户端通过AngularJS Web客户端更改数据库,并且当其中一个客户端更改数据库(模型)时,每个客户端都需要更新。

最佳Ruby on Rails WebSocket工具

我开始在Rails 3项目,我需要添加通知(如Facebook之一)。 最好的办法是使用WebSocket支持iPad等设备,但我找不到任何好的工具来轻松在Rails中实现它。 我发现Pusherapp,但他们的价格是压倒性的,我也不认为提供我的数据到第三方公司将是明智的。 所以需要的东西: 开源 某种渠道支持 Helpers for Rails(和Rails 3一起工作)

我对HTTP轮询,长轮询,HTTPstream和WebSockets的理解

我已经在SO和网上阅读了很多关于我的问题标题中的关键字的post,并且从中学到了很多东西。 我读到的一些问题与具体的实施挑战有关,而另一些则关注一般概念。 我只是想确保我理解了所有的技术概念,以及为什么技术X是发明于技术Y等等的理由。 所以在这里: Http轮询:基本上AJAX,使用XmlHttpRequest。 Http长轮询: AJAX,但服务器坚持的响应,除非服务器有更新,一旦服务器有更新,它发送它,然后客户端可以发送另一个请求。 缺点是额外的头数据需要来回发送,造成额外的开销。 Http Streaming:类似于长轮询,但是服务器用“Transfer Encoding:chunked”来响应头部,因此每次服务器发送一些数据(因此保存额外的头部开销),我们不需要发起新的请求。 这里的缺点是我们必须“理解”并弄清数据的结构,以区分服务器发送的多个块。 Java Applet,Flash,Silverlight:它们提供了通过tcp / ip连接套接字服务器的能力,但由于它们是插件,开发人员不想依赖它们。 WebSockets:它们是以下列方式试图解决上述方法的缺点的新API: WebSockets相对于Java Applets,Flash或Silverlight等插件的唯一优势在于,WebSockets本身就内置于浏览器中,不依赖于插件。 WebSocket相对于HTTPstream的唯一优势是您不必花费精力来理解和parsing接收到的数据。 通过长轮询的WebSocket的唯一优点是消除额外的头大小和打开和closures请求的套接字连接。 还有什么其他重要的差异,我失踪了? 我很抱歉,如果我重复询问或将已经存在的许多问题合并成一个单一的问题,但我只想从所有关于这些概念的Web和Web上的信息中完全理解。 谢谢!

正确closuresWebSocket(HTML5,Javascript)

我正在玩HTML5 WebSockets。 我想知道,如何优雅地closures连接? 就像,如果用户刷新页面,或只是closures浏览器会发生什么? 当用户只是刷新页面而不调用websocket.close() – 当它们在刷新之后返回时,它会碰到websocket.onclose事件,这是一个奇怪的行为。

套接字和websocket之间的区别?

我正在构build需要使用套接字连接与另一个应用程序通信的Web应用程序。 对我来说这是一个新的领域,所以要确保套接字不同于websocket 。 看起来他们只是在概念上相似。 问起,因为最初我计划使用Django作为我的项目的基础,但是在上面链接的SOpost中,已经明确指出websocket是不可能的(或者至less不可靠,即使是像django-websockets )使用首选的Django设置(Apache与mod_wsgi)。 然而,我发现其他职位随便导入Python的套接字模块,像抓住服务器的主机名一样简单。 所以: 他们真的不一样吗? 有没有任何理由不使用Django的项目,依靠与外部服务器build立套接字连接?

Faye与Socket.IO(以及Juggernaut)

Socket.IO似乎是最stream行和最活跃的WebSocket仿真库。 剑圣使用它来创build一个完整的pub / sub系统。 Faye也很受欢迎,并且拥有自己的JavaScript库,使其function堪比Juggernaut。 Juggernaut使用节点作为其服务器,而Faye可以使用节点或机架。 Juggernaut使用Redis进行持久化( 更正:它使用Redis作为pub / sub),而Faye只在内存中保持状态。 一切准确吗? 菲耶说它实现了巴约 – 我认为剑圣不这样做 – 是因为剑圣是低级(IE,我可以用剑圣实现巴约) 如果想要,Faye可以切换到使用Socket.IO浏览器的JavaScript库吗? 或者做他们的JavaScript库做根本不同的事情? 项目之间还有其他的build筑/devise/哲学差异吗?

WebSockets和纯TCP之间的根本区别是什么?

我已经阅读了关于WebSocket的内容 ,我想知道为什么浏览器不能简单地打开普通的TCP连接,并像其他桌面应用程序一样与服务器通信。 为什么这个通信可以通过websockets?