- 浏览: 494103 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
WebSocket
1.WebSocket protocol 是HTML5一种新的协议。它是实现了浏览器与服务器全双工通信(full-duplex)。HTML5定义了WebSocket协议,
能更好的节省服务器资源和带宽并达到实时通讯。
2.WebSocket是为解决客户端与服务端实时通信而产生的技术。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,
此后服务端与客户端通过此TCP连接进行实时通信。
3.借用了HTTP的协议来完成一部分握手。在HTTP1.1中进行了改进,使得有一个keep-alive,也就是说,在一个HTTP连接中,可以发送多个Request,接收多个Response。
4.Websocket服务器端程序运行结束就会发出关闭事件给前端
5.长连接可能是基于类似于socket长连接的心跳包机制来进行连接状态的维护
websocket的优点
以前我们实现推送技术,用的都是轮询,在特点的时间间隔有浏览器自动发出请求,将服务器的消息主动的拉回来,在这种情况下,我们需要不断的向服务器
发送请求,然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源。会占用大量的带宽和服
务器资源。
例子:
HTML(客户端)
java(服务器)
//如果要从服务推送到WEB,就是要用MAP保存USE与chanle的对应关系
public void onOpen(Session session, @PathParam("ip") String ip)//传参数方式
goeasy//第三方方案
参考原文:https://www.web-tinker.com/article/20310.html
1.WebSocket protocol 是HTML5一种新的协议。它是实现了浏览器与服务器全双工通信(full-duplex)。HTML5定义了WebSocket协议,
能更好的节省服务器资源和带宽并达到实时通讯。
2.WebSocket是为解决客户端与服务端实时通信而产生的技术。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,
此后服务端与客户端通过此TCP连接进行实时通信。
3.借用了HTTP的协议来完成一部分握手。在HTTP1.1中进行了改进,使得有一个keep-alive,也就是说,在一个HTTP连接中,可以发送多个Request,接收多个Response。
4.Websocket服务器端程序运行结束就会发出关闭事件给前端
5.长连接可能是基于类似于socket长连接的心跳包机制来进行连接状态的维护
websocket的优点
以前我们实现推送技术,用的都是轮询,在特点的时间间隔有浏览器自动发出请求,将服务器的消息主动的拉回来,在这种情况下,我们需要不断的向服务器
发送请求,然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源。会占用大量的带宽和服
务器资源。
例子:
HTML(客户端)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>websocketTest</title> </head> <body> <div> <input type="button" value="connect" onclick="connectfn()"/> </div> <div> <input type="button" value="Start" onclick="start()"/> </div> <div> <input type="button" value="close" onclick="closefn()"/> </div> <div id="messages"></div> <script type="text/javascript"> var webSocket = new WebSocket('ws://127.0.0.1:8080/CESmart/WebSocketTest'); //产生异常 webSocket.onerror = function (event) { onError(event) }; //已经建立连接 webSocket.onopen = function (event) { onOpen(event) }; //收到服务器消息,使用evt.data提取 webSocket.onmessage = function (event) { onMessage(event) }; //已经关闭连接 webSocket.onclose = function (event) { alert("onclose"); webSocket.close(); }; function onMessage(event) { document.getElementById('messages').innerHTML += '<br />' + event.data; } function onOpen(event) { alert("onOpen"); document.getElementById('messages').innerHTML = 'Connection established'; } function onError(event) { alert(event.data); } function start() { alert("start"); webSocket.send('hello'); //return false; } function closefn() { alert("close"); webSocket.send('close'); webSocket.close(); webSocket = null; } function connectfn() { alert("connectfn"); if (webSocket == null) { alert("webSocket == null"); webSocket = new WebSocket('ws://127.0.0.1:8080/CESmart/WebSocketTest'); //收到服务器消息,使用evt.data提取 webSocket.onmessage = function (event) { alert("onmessage"); onMessage(event) }; } } window.onbeforeunload = function () { alert("onbeforeunload"); webSocket.send('close'); //发送关闭请求让服务器关闭链接 webSocket.close();//关闭TCP连接 webSocket = null; return false; // 可以阻止关闭 } </script> </body> </html>
java(服务器)
package com.proserver.common.controller.WebSocket; import java.io.IOException; import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/WebSocketTest") // 这里表示定义WebSocket的接入点 public class WebSocketTest { // 接收消息处理 @OnMessage public void onMessage(Session session, String message) { System.out.println("webSocket onMessage message == " + message); if (session != null) { try { session.getBasicRemote().sendText("Server Test!<br>"); } catch (IOException e) { e.printStackTrace(); } } else { System.out.println("this.session == null"); } if (message.equals("close")) { System.out.println("this.session message == close"); try { session.close();// 关闭连接 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } // 新的WebSocket请求开启 @OnOpen public void onOpen(Session session) { System.out.println("webSocket onOpen"); } // WebSocket请求关闭 @OnClose public void onClose(Session session) { System.out.println("webSocket onClose"); if (session != null) { try { session.close(); } catch (IOException e) { e.printStackTrace(); } } } // WebSocket出错 @OnError public void onError(Throwable thr) { System.out.println("onError"); thr.printStackTrace(); } }
//如果要从服务推送到WEB,就是要用MAP保存USE与chanle的对应关系
public void onOpen(Session session, @PathParam("ip") String ip)//传参数方式
goeasy//第三方方案
参考原文:https://www.web-tinker.com/article/20310.html
/** deviceDebugController.js */ angular.module("rideshare").controller("deviceDebugController", function ($scope) { //$scope.inputString = "123456345"; $scope.inputString = 10; var webSocket = new WebSocket('ws://ce5.midea.com:8080/mdot/logWebSocket'); webSocket.onerror = function (event) { onError(event) }; webSocket.onopen = function (event) { onOpen(event) }; webSocket.onmessage = function (event) { onMessage(event) }; function onMessage(event) { var stringorg = event.data; var myHtml = $scope.inputString; var re = new RegExp(myHtml, "gm"); stringorg = stringorg.replace(re, "<span style=\"background: #CCFF99; color:red; \">" + myHtml + "</span>"); $("#log-container div").append(stringorg); $scope.$apply(); $("#log-container").scrollTop($("#log-container div").height() - $("#log-container").height()); } function onOpen(event) { } function onError(event) { alert(event.data); } function start() { webSocket.send($scope.inputString); } function stopFn() { console.info("_C_L_O_S_E_"); webSocket.send("_C_L_O_S_E_"); } function cleanScreen() { $("#log-container div").empty(); } $scope.start = start; $scope.stopFn = stopFn; $scope.cleanScreen = cleanScreen; });
发表评论
-
选举算法
2022-06-17 08:48 419选举算法 常用的选举 ... -
elasticSearch使用
2022-04-27 08:42 409ElasticSearch 基于Apache Lucene构建 ... -
IDEA 快捷键
2022-03-02 16:55 242大小写转换快捷键 ctr+shift+u IDEA ... -
zookeeper dubbo 安装
2021-12-04 19:27 310docker-machine ssh default d ... -
将博客搬至CSDN
2021-11-18 19:57 185将博客搬至CSDN -
docker mysql 主从安装
2021-11-10 16:55 230docker run -d -p 13306:3306 --n ... -
rocketmq安装部署.txt
2021-11-07 19:10 213docker search rocketmq docke ... -
百度人脸识别
2021-05-21 16:11 360package com.gaojinsoft.htwy.y20 ... -
springBoot tomcat配置参数说明
2021-05-12 09:13 3011#最大连接数 server.tomcat.max-connec ... -
indexedDb TEST
2021-03-24 08:36 504<!DOCTYPE html> <html& ... -
技术选型
2021-01-29 17:34 2891.移动端组件vux,vant,vant好点,文档好的,基于v ... -
方便开发调试和问题跟踪
2021-01-01 10:17 2451.外网最好可以连接数据库 2.关键信息可以在接口返回信息, ... -
Jenkins脚本
2020-03-12 17:55 439#!/bin/bash -ilx echo "开始 ... -
test11223
2019-11-08 17:35 303nginx 的启动、停止与重 ... -
longKey
2019-12-05 17:23 290<!DOCTYPE html> <html ... -
base64与file 相互转换
2019-10-23 18:19 763base64与file 相互转换 import org. ... -
jQuery Validate 校验
2019-09-25 21:16 322https://www.runoob.com/jquery/j ... -
移动端调试神器
2019-09-23 22:55 272<!DOCTYPE html> <html ... -
钉钉开发
2019-09-17 20:16 428钉钉开发 开发者帐号 1357047443 x***310* ... -
textarea 特殊字符串处理
2019-07-04 22:56 1141<!DOCTYPE html> <html ...
相关推荐
WebSocket Sharp 是一个C#实现的WebSocket协议库,它支持客户端和服务端的功能,符合RFC 6455标准。这个组件不仅提供了基本的WebSocket连接管理,还包含了一些高级特性,如消息压缩、安全连接、HTTP身份验证、代理...
WebSocket是一种在客户端和服务器之间建立持久连接的网络协议,它允许双方进行全双工通信,即数据可以在两个方向上同时传输。MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于构建Windows应用程序...
WebSocket是一种在客户端和服务器之间建立长连接的协议,它允许双方进行全双工通信,即数据可以在两个方向上同时传输,极大地提高了实时性。在若依框架中集成WebSocket,可以为用户带来更流畅、即时的交互体验,尤其...
在Delphi编程环境中,WebSocket技术可以极大地提升应用程序的交互性和实时性,尤其是在开发需要实时数据更新的桌面或移动应用时。 DelphiWebsockets-master.zip是一个包含Delphi WebSocket实现的项目资源压缩包。这...
c# winform快速建websocket客户端源码 wpf快速搭建websocket客户端 c#简单建立websocket客户端 websocket快速简单搭建客户端 websocket客户端实现 在C# WinForm应用程序中快速构建WebSocket客户端,是一种实现实时...
WebSocket是一种在客户端和服务器之间建立持久连接的网络协议,它为双向通信提供了低延迟、高效率的解决方案。在传统的HTTP协议下,客户端与服务器之间的通信是请求-响应模式,即客户端发起请求,服务器响应,然后...
WebSocket是Web应用中一种在客户端和服务器之间建立长连接的协议,它允许双方进行全双工通信,极大地提高了数据传输效率。在这个“html页面测试websocket”的项目中,我们可以看到几个关键文件:`index.html`、`...
WebSocket是一种在客户端和服务器之间建立持久连接的协议,它允许双方进行全双工通信,即数据可以在两个方向上同时传输,极大地提高了实时性。在Web应用中,WebSocket为开发者提供了实时交互的能力,常用于在线聊天...
WebSocket是一种在客户端和服务器之间建立持久连接的网络通信协议,它允许双向通信,即服务器和客户端都可以主动发送数据。在Web开发中,WebSocket为实时应用提供了高效、低延迟的解决方案,比如在线聊天、股票交易...
WebSocket测试工具,如"WebSocketMan-v1.0.9-win32",是专为开发者设计的,用于调试、测试和分析WebSocket服务器和客户端的性能及功能。 WebSocket协议的核心特性: 1. **持久连接**:WebSocket建立连接后,服务器...
WebSocket是一种在客户端与服务器之间建立持久连接的协议,它允许双方进行全双工通信,即数据可以在两个方向上同时传输,极大地提高了实时性。在本项目中,"简单实现了websocket功能:websocket客户端、winform...
在现代Web开发中,实时通信已经成为一个不可或缺的功能,Spring、Netty和WebSocket的结合为构建高性能、低延迟的实时应用提供了强大的解决方案。本实例将详细探讨如何利用这三种技术进行集成,实现高效的双向通信。 ...
WebSocketSharp是一个针对C#开发的开源库,它允许开发者在.NET Framework 4.0和3.5环境下构建WebSocket服务和客户端。WebSocket协议是一种在互联网上实时通信(RTC)的技术,它提供了一种低延迟、全双工的通信机制,...
1、下载mongoose使用mongoose中的example中的websocket_chat,实现websocket 2、websocket_chat源码下载路径 官网:https://cesanta.com 论坛:https://forum.mongoose-os.com/index.php?p=/categories/mongoose ...
c# winform快速建websocket服务器源码 wpf快速搭建websocket服务 c#简单建立websocket服务 websocket快速搭建 随着互联网技术的飞速发展,实时交互和数据推送已成为众多应用的核心需求。传统的HTTP协议,基于请求-...
WebSocket-FMP4与WebSocket-FLV视频播放器在Web端的应用是现代互联网实时通信技术的重要实践,其中wsplayer是一款常见的实现此类功能的播放器。本文将深入探讨WebSocket协议、FMP4与FLV格式以及wsplayer播放器的相关...
WebSocket是Web交互技术的一种革新,它为实时双向通信提供了标准协议。在传统的HTTP协议中,客户端与服务器之间的通信是请求-响应模式,而WebSocket则允许持久连接,使得数据可以双向实时传输,极大地优化了实时应用...
WebSocket是一种在客户端和服务器之间建立持久连接的网络通信协议,它允许双向实时数据传输,极大地提高了Web应用的性能。在本项目中,我们将利用Microsoft Foundation Classes (MFC) 框架,用C++编程语言在Visual ...
WebSocket是Web交互技术的一种,它允许在客户端和服务器之间建立持久的、低延迟的双向连接。这个技术在2011年被W3C标准化,为实时应用如在线游戏、股票交易、聊天室等提供了高效的数据传输方式。WebSocket API设计得...
WebSocket++库是一个开源的C++库,专门用于实现WebSocket协议,该协议允许在Web浏览器和其他服务器之间进行全双工通信。WebSocket++库的设计目标是提供一个轻量级、高效且易于使用的WebSocket客户端和服务器实现,它...