WebSocket

授权协议 未知
开发语言 Java HTML/CSS
所属分类 Web应用开发、 HTML5开发相关
软件类型 开源软件
地区 不详
投 递 者 漆雕嘉茂
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。 WebSocket通信协议于2011年被IETF定为标准 RFC 6455,WebSocketAPI 被 W3C 定为标准。

在 WebSocket API 中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

现在,很多网站为了实现即时通讯(real-time),所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(time interval)(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request d的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求(request),然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽。

而最比较新的技术去做轮询的效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求(reuqest)。

在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此WebSocket 协议中,为我们实现即使服务带来了两大好处:

1. Header

互相沟通的Header是很小的-大概只有 2 Bytes

2. Server Push

服务器可以主动传送数据给客户端

  • WebSocket简介 webSocket是HTML5开始提供的一种在单个TCP连接上进行双工通讯的协议。 webSocket使得客户端和服务器之间的数据交换变的更加简单,允许服务端主动向客户端推送数据。 在webSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。   Socket原理 在计算机通信领域,socket被翻译为“套接字”

  • 1. 什么是 WebSocket websocket是HTML5开始提供的一种网络通信协议,它的目的是在浏览器之间建立一个不受限的双方通信的通道,比如说,服务器可以在任意时刻发送信息给浏览器。在websocket的API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 2. WebSocket 的方法 ws.send() - 向服务器发送数据 ws.c

 相关资料
  • 问题内容: 我想创建具有低负载的简单服务器。目标是使一些javascript客户端可以通过WebSocket访问以Java实现的某些功能。我正在寻找最佳的库来使用- 它应该简单,健壮等。现在我考虑3个替代方案-jWebSocket-jetty-netty最好的是什么?还是其他呢? 提前致谢 问题答案: jWebSocket现在包括Jetty8.0引擎,该引擎包括SSL,并且在其之上还包括许多功能。

  • 问题内容: 我为spring-web应用程序添加了基于自定义令牌的身份验证,并将其扩展到spring websocket,如下所示 连接到套接字的客户端代码是 从我的控制器发送消息为 对于auth令牌,用户名是。但是,当我向发送消息时,它在客户端未收到。我有什么想念的吗? 问题答案: 在您的Websocket控制器中,您应该执行以下操作: 在客户端,您的用户应订阅主题/ user / queue

  • 问题内容: 我正在使用Websockets(Java EE 7)将消息异步发送到所有连接的客户端的应用程序。每当创建新文章(我的应用程序中的参与模式)时,服务器(Websocket端点)应发送这些消息。 每次建立到websocket端点的连接时,我都会将相应的会话添加到列表中,我可以在外部访问该列表。 但是我遇到的问题是,当我访问所有外部(所有其他业务类)与之连接的客户端创建的websocket端

  • 问题内容: 我正在尝试构建一个应用程序,该应用程序使用流音频输入(例如:麦克风中的一条线),并使用IBM Bluemix(Watson)进行语音转文本。 我简要修改了此处找到的示例Java代码。此示例发送一个WAV,但是我发送的是FLAC …这[无关]不相关。 结果很差,非常差。这是使用Java Websockets代码时得到的: 现在,将上面的结果与下面的结果进行比较。这些是发送相同内容但使用c

  • 问题内容: 我有一个具有websocket功能的简单spring应用程序,到目前为止一切正常。现在,我想使用@SendToUser批注将消息从服​​务器发送到特定客户端。这给了我错误“正在忽略消息,没有可用的主体信息”。我知道我的服务器上没有任何登录信息,因此每个用户都是“匿名的”并且没有委托人(我现在不使用Spring Security)。但是每个用户都有一个会话ID。是否可以通过某种方式使用会

  • 问题内容: 我想在用户连接到Spring WebSocket时向其发送消息, MyChannelInterception类为 通过这一点,我在收到新连接的用户,但该方法的信息中不将消息发送到新的登录用户。 问题答案: 我将创建侦听器并在内部使用。 顺便说一句,仅被调用一次(不适用于每个连接的用户)。因此,您必须处理拦截器中的发送消息。 尝试这样的事情: 我希望这个能帮上忙

  • 问题内容: 我正在使用tootallnate websockets服务器来侦听来自网站的连接。 如何连接到Heroku上的服务器? 当我的网站尝试连接时 要么 我的heroku日志输出。 然后(仍然是Heroku Logs) 我的JavaScript日志 我的应用程序在服务器内设置。 我的档案 问题答案: 尝试使用此: 在Heroku上,您必须绑定并使用分配给应用程序的端口,该端口包含在环境变量中

  • 问题内容: 我有这个代码 如何从打开套接字的客户端获取初始化参数? 问题答案: 取决于初始化参数的含义。您可以执行以下操作: 然后,您必须使用以下URL访问端点:。 如果您使用查询参数,请参阅。