websocket协议

wepsocket 了解一下

一笑奈何 提交于 2020-01-09 00:15:48
WebSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符。它实现了浏览器与服务器全双工(full-duplex)通信。其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信。 本文将使用Python编写Socket服务端,一步一步分析请求过程!!! 简单个人定义:     1. 什么是websocket?     **是一套协议,协议规定了:       - 连接时需要握手       - 发送数据进行加密       - 连接之后不断开           **那些框架支持websocket?      - flask,gevent-websocket flask没有 要下载第三方组件 :gevent-websocket        - django,channel django没有 要下载第三方组件:channel     - torando框架自带       websocket的兼容性是他的缺点:           一些老版本浏览器 不支持            **应用场景?       实时响应页面时,可以使用websocket。 1. 启动服务端 import socket sock = socket.socket(socket.AF_INET, socket

TCP UDP socket http webSocket 之间的关系

半腔热情 提交于 2020-01-02 20:43:38
---恢复内容开始--- OSI&TCP/IP模型 要弄清 tcp udp socket http websocket 之间的关系,首先要知道经典的 OSI 七层模型,与之对应的是 TCP/IP 的四层模型。 OSI 模型包括了七层,而 TCP/IP 模型只有四层。虽然它们具有功能相当的网络层、传输层和应用层,但其它层并不相同。   我们一般使用的网络数据传输由下而上共有七层,分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,也被依次称为 OSI 第一层、第二层、⋯⋯、 第七层。   TCP/IP 模型中没有专门的表示层和会话层,它将与这两层相关的表达、编码和会话控制等功能包含到了应用层中去完成。另外,TCP/IP 模型还将 OSI 的数据链路层和物理层包括到了一个网络访问层中。   OSI 模型在网络层支持无连接和面向连接的两种服务,而在传输层仅支持面向连接的服 务。TCP/IP 模型在互联网层则只支持无连接的一种服务,但在传输层支持面向连接和无连 接两种服务。   TCP/IP 由于有较少的层次,因而显得更简单,并且作为从因特网(INTERNET)上发展起来的协议,已经成了网络互连的事实标准。但是,目前还没有实际网络是建立在 OSI 七层模型基础上的,OSI 仅仅作为理论的参考模型被广泛使用。 从图中可以看出, tcp udp 工作在传输层, http

简单又好用的聊天室技术——WebSocket

房东的猫 提交于 2019-12-29 15:43:59
现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP request的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽和服务器资源。 Ajax轮询——“定时的通过Ajax查询服务端" 而比较新的技术去做轮询的效果是Comet,使用了AJAX。但这种技术虽然可达到双向通信,但依然需要发出请求,而且在Comet中,普遍采用了长链接,这也会大量消耗服务器带宽和资源。 Comet——随着AJAX技术兴起而产生的新技术 用大白话揭开Ajax长轮询(long polling)的神秘面纱 面对这种状况,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯。 国际惯例,先上维基百科的解释。 "WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。" ——维基百科 上面是维基百科对WebSocket的解释,别问我如何解释上面这段话,因为我也没看懂,那么下面我用人话解释一下吧(仅仅是我的理解): WebSocket是一个协议,可以简单看成是HTTP协议的一个补充协议

Websocket教程SpringBoot+Maven整合

倾然丶 夕夏残阳落幕 提交于 2019-12-29 15:42:46
1、大话websocket及课程介绍 简介: websocket介绍、使用场景分享、学习课程需要什么基础 2、课程技术选型和浏览器兼容讲解 简介: 简单介绍什么是springboot、socketjs、stompjs,及解决使用浏览器兼容问题 3、websocket广播、单播、组播介绍和使用场景说明 简介: 主要讲解websocket的一些概念,如广播,单播等,他们的基本区别和使用场景 4、广播技术应用 简单websocket游戏公告系统《一》 简介: 快速用springboot搭建一个web应用和maven相关依赖的引入 5、游戏公告系统里maven依赖包webjars使用介绍 简介:介绍什么是webjars,为什么使用这个maven依赖包,解决我们的什么问题 6、广播技术应用 简单websocket游戏公告系统《二》 简介: springBoot里面websocket的配置类讲解,接口开发,页面模板套用 7、websocket游戏公告系统流程详解 简介: 公告系统里面的相关socketjs和stompjs API介绍和流程讲解 8、websocket推送两种推送方法的区别和讲解 简介: 讲解websocket推送方式:@SendTo注解和SimpMessagingTemplate的区别 9、Springboot针对websocket 4类的监听器介绍和使用 简介:

一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活

拥有回忆 提交于 2019-12-24 03:06:16
一起来用 Websocket (一)开篇 Websocket ! Socket 在 HTML5 复活 前言 HTML5 中有一个比较好用的特性,就是 Websocket 。现在已集成在 chrome 的较新版本中。由于前段时间在项目中有用到 Websocket ,感到 Websocket 真是 HTML5 中比较强大的功能。现在抽点时间,总节一下在 .net 中使用 Websocket 要注意的地方。同时,由于园子里关于 Websocket 的文章不多,希望能起到抛砖引玉的作用,希望能和大家一起讨论更好的实现方式,形成更好的应用。 如果可以的话,希望能形成我们 .net 社区自己的 Websocket 框架(类似 jWebsocket )。最近,业余时间我也时行了 jWebsocket 转 .net 版本的开发和测试工作,希望能借这个专题,把这个框架和大家一起完善起来,也希望有兴趣的朋友加入一同开发,相信我们能得很多。 下面言规正转,开始谈 Websocket 吧。 示例 下面有一个类似在线留言的例子: http://HTML5demos.com/web-socket 。 大家一眼能看出来吧,这个没啥特别的呀,不是和 AJAX 差不多吧。我用 JQuery 或者 Xmlhttprequest 或其它 js 框架都可以很快写出来呀。其实, Websocket 也可以被拿来当用

WebSocket

半世苍凉 提交于 2019-12-23 05:31:27
HTTP 协议 有一个缺陷: 通信只能由客户端发起 ,做不到服务器主动向客户端推送信息。 这种 单向请求 的特点, 注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用 "轮询" :每隔一段时候,就发出一个询问,了解服务器有没有新的信息。 最典型的场景就是聊天室。 轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。 WebSocket 协议 最大特点就是, 服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于 服务器推送技术 的一种。 其他特点包括: (1)建立在 TCP 协议之上,服务器端的实现比较容易。 (2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。 (3)数据格式比较轻量,性能开销小,通信高效。 (4)可以发送文本,也可以发送二进制数据。 (5)没有同源限制,客户端可以与任意服务器通信。 (6)协议标识符是 ws (如果加密,则为 wss ),服务器网址就是 URL。 ws://example.com:80/some/path    来源: https://www.cnblogs.com/panpanwelcome/p/8158899.html

了解WebSocket

懵懂的女人 提交于 2019-12-13 10:42:48
了解WebSocket ​ WebSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符。它实现了浏览器与服务器全双工(full-duplex)通信。其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信。 本文将使用Python编写Socket服务端,一步一步分析请求过程!!! 1. 启动服务端 import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind(('127.0.0.1', 8002)) sock.listen(5) # 等待用户连接 conn, address = sock.accept() ... ... ... 启动Socket服务器后,等待用户【连接】,然后进行收发数据。 2. 客户端连接 <script type="text/javascript"> var socket = new WebSocket("ws://127.0.0.1:8002/xxoo"); ... </script> 当客户端向服务端发送连接请求时,不仅连接还会发送【握手】信息

php websocket实现网页聊天室

陌路散爱 提交于 2019-12-13 01:45:46
chat.html: <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/> <title>HTML5 websocket 网页聊天室 javascript php</title> <style type="text/css"> body,p{margin:0px; padding:0px; font-size:14px; color:#333; font-family:Arial, Helvetica, sans-serif;} #ltian,.rin{width:98%; margin:5px auto;} #ltian{border:1px #ccc solid;overflow-y:auto; overflow-x:hidden; position:relative;} #ct{margin-right:111px; height:100%;overflow-y:auto;overflow-x: hidden;} #us{width:110px; overflow-y:auto; overflow-x:hidden; float:right;

quick-cocos2d-x 中的 socket 技术选择:LuaSocket 和 WebSocket

送分小仙女□ 提交于 2019-12-09 13:37:39
在 quick-cocos2d-x 中,默认集成了 LuaSocket 和 WebSocket 两个 Socket 库。那么,在开发需要长连接的手机游戏时,应该选择哪个库呢?下面从几个方面进行比较: 跨平台; 易用性; 性能; 流量; 灵活性; 二进制编码; 服务器实现。 一、跨平台 WebSocket 是跨平台的,其导出到lua的代码位于[quick]/lib/cocos2d-x/scripting/lua/cocos2dx_support/Lua_web_socket.cpp。 LuaSocket 也是跨平台的,其导出到lua的代码位于[quick]/lib/cocos2d-x/scripting/lua/lua_extensions/lua_extensions.c。quick 中集成的 LuaSocket 是 2.1RC 版本。 二、易用性 [quick]/samples/websockets 是quick提供的一个WebSocket范例。[quick]/samples/cocos2dx_luatest/scripts/ExtensionTest/WebProxyTest.lua也是一个范例。WebSocket 库封装了一些基本的事件支持 open/message/close/error ,在使用的时候比较方便。 WebSocket 天生就是非阻塞的。 在 quick 中

小知识点记录

自闭症网瘾萝莉.ら 提交于 2019-12-06 05:39:44
JsonP // 利用script的src属性绕过浏览器的同源策略,但是只能发GET请求 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <p> <input type="button" onclick="Jsonp1();" value='提交'/> </p> <p> <input type="button" onclick="Jsonp2();" value='提交'/> </p> <script type="text/javascript" src="jquery-1.12.4.js"></script> <script> function Jsonp1(){ var tag = document.createElement('script'); tag.src = "http://c2.com:8000/test/"; document.head.appendChild(tag); document.head.removeChild(tag); }      function list(data){          console.log(data)      } function Jsonp2(){ $.ajax({ url: