websocket

TCP、UDP、HTTP、SOCKET、WebSocket之间的区别

久未见 提交于 2020-11-24 00:00:57
TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议。 IP: 网络层协议;(高速公路) TCP和UDP: 传输层协议;(卡车) HTTP: 应用层协议;(货物)。HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。 SOCKET: 套接字,TCP/IP网络的API。(港口码头/车站)Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。 TCP/IP: 代表传输控制协议/网际协议,指的是一系列协议,TCP/IP 模型在 OSI 模型的基础上进行了简化,变成了四层,从下到上分别为:网络接口层、网络层、传输层、应用层。 TCP/UDP区别 TCP (传输控制协议,Transmission Control Protocol):(类似打电话) 面向连接、传输可靠(保证数据正确性)、有序(保证数据顺序)、传输大量数据(流模式)、速度慢、对系统资源的要求多,程序结构较复杂, 每一条TCP连接只能是点到点的, TCP首部开销20字节。 UDP (用户数据报协议,User

看完让你彻底理解 WebSocket 原理,附完整的实战代码(包含前端和后端)

匆匆过客 提交于 2020-11-23 09:47:51
前言 最近有同学问我有没有做过在线咨询功能。同时,公司也刚好让我接手一个 IM 项目。所以今天抽时间记录一下最近学习的内容。 本文主要剖析了 WebSocket 的原理,以及附上一个完整的聊天室实战 Demo (包含前端和后端,代码下载链接在文末)。 WebSocket 与 HTTP WebSocket 协议在2008年诞生,2011年成为国际标准。现在所有浏览器都已经支持了。WebSocket 的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。 HTTP 有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个 HTTP 请求合并为一个,但是 Websocket 其实是一个新协议,跟 HTTP 协议基本没有关系,只是为了兼容现有浏览器,所以在握手阶段使用了 HTTP 。 下面一张图说明了 HTTP 与 WebSocket 的主要区别: WebSocket 的其他特点: 建立在 TCP 协议之上,服务器端的实现比较容易。 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。 数据格式比较轻量,性能开销小,通信高效。 可以发送文本,也可以发送二进制数据。 没有同源限制,客户端可以与任意服务器通信。 协议标识符是ws

.NET CORE 2.2创建WebSocket Windows服务

北战南征 提交于 2020-11-23 06:14:13
作为自己的第一个上线的.Net Core程序,踩得坑还是比较多的,这个程序主要用到了以下几平时没有接触到的方面 开发环境,.Net Core2.2,VS2019 Topshelf Topshelf 是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主。 使用Topshelf可以非常方便的将一个C#控制台程序部署成为一个Windows Service,使用它可以很方便的构建跨平台服务寄主,而在调试时直接以控制台的形式运行即可,非常方便。 首先,通过Nuget安装Topshelf ,我安装的是4.2.0 编写控制台的main函数 System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory); var rc = HostFactory.Run(x => {   x.Service <WebSocketService>(s =>   {   s.ConstructUsing(name => new WebSocketService());   s.WhenStarted(tc => tc.Start());   s.WhenStopped(tc => tc.Stop());   });   x

Nodes小程序的几个新功能-实时编辑、赞赏、自定义头图

有些话、适合烂在心里 提交于 2020-11-23 05:23:21
最近深圳台风打上瘾了,一到周末就开始刮风下雨,宅在家撸码最合适不过了,于是给Nodes加了几个功能,顺便练练手。 赞赏 有同学说之前想打赏Nodes都不行,现在借助于第三方小程序,Nodes可以实现打赏了。具体如下:在首页头图右下角有个红包icon,点击会展示一个可长按识别并打赏的小程序码。 同时在部分页面的右下角菜单也追加了“打赏”功能,喜欢Nodes就赞助点服务器维护费用吧。 实时编辑 发现部分讲师同学会用Nodes来辅助他们演讲,有时候需要“一对多”地对思路进行实时同步,于是Nodes追加了一个实时编辑和实时预览的功能,具体可按以下步骤体验: 转发某个思维导图给相关同学,并在编辑页的右下角菜单处点击开启“实时编辑” 相关同学在预览页右下角开启“实时刷新”功能 此时,在编辑页进行操作的时候,预览页会跟着变化,视频教程如下: 技术是基于WebSocket的,由于是通过网络传输数据,有时候卡顿或者延迟是有正常的。 首页头图可自定义 在Nodes小程序的首页(即思维导图列表页)可自定义头图,具体操作方式为“点击头图空白处并选择所要换上的图片” 该头图与点击头像进入的、个人列表页的头图无关联,是单独的头图定义。 是时候给Nodes换个皮了,动手吧。 好了,写完了。 突然发现自己别的爱好都没丢了,闲了就只写代码.... 俨然一码农... 本文分享自微信公众号 - MinProgram

HTML5游戏开发进阶指南 中文pdf扫描版​

邮差的信 提交于 2020-11-22 06:58:08
HTML5游戏开发进阶指南介绍了HTML5游戏开发的一般过程和技巧。全书共分12章,第1章介绍了本书相关的HTML5的诸多新特性,包括在canvas上绘图、播放声音等,另外还引入了子画面页的概念;第2~4章利用Box2D物理引擎开发了一款非常类似于《愤怒的小鸟》的游戏,全面介绍了物理引擎的概念,以及在游戏中使用物理引擎的方法,这一部分还引入了视差滚动技巧,以实现某种伪3D效果;第5~10章开发了一款简化版的《红色警戒》游戏,这一部分涉及了相当多的内容,包括地图的制作,建筑与单位的设定、绘制,玩家与单位的互动,触发器与剧情的编写,路径规划算法等;第11、12章利用Node.js和WebSocket开发了《红色警戒》游戏的多人对战模式,这一部分的主要问题是保持游戏在多个玩家的浏览器中的状态一致。 HTML5游戏开发进阶指南 目录 第1章HTML5与JavaScript概要 第2章 创建基本的游戏世界 第3章 物理引擎基础 第4章 物理引擎集成 第5章 创建即时战略游戏世界 第6章 加入单位 第7章 单位智能移动 第8章 添加更多的游戏元素 第9章 添加武器和战斗 第10章 完成单人战役 第11章 WebSocket与多人对战模式 第12章 多人对战游戏操作 教程地址: HTML5游戏开发进阶指南 中文pdf扫描版 ​ 来源: oschina 链接: https://my.oschina

websocket 断线重连

烈酒焚心 提交于 2020-11-22 06:46:51
服务端为swoole 的websocket 客户端js代码: // 1.创建websocket客户端 var wsServer = 'ws://ip/' ; var limitConnect = 3; // 断线重连次数 var timeConnect =0 ; webSocketInit(wsServer); // socket初始化 function webSocketInit(service){ var ws = new WebSocket(service); ws .onopen = function () { console . log ("已连接TCP服务器" ); }; ws .onmessage = function (msg) { console . log (msg); }; ws .onclose = function () { console . log ('服务器已经断开' ); reconnect(service); }; ws .onerror = function (err) { // console.log("服务器报错:"); reconnect(service); }; // 重连 function reconnect(service) { // lockReconnect加锁,防止onclose、onerror两次重连 if

在以太坊上如何实现联盟链

早过忘川 提交于 2020-11-22 01:29:45
搞了三个月联盟链,基本上算是告一段落,大概梳理下所做的东西,希望能对要做联盟链的人有所帮助。 在写这篇文章前,简单介绍下联盟链的功能。 国密和国际算法切换 参数toml配置 有币无币 支持Gmssl P2P的证书准入 委员会成员更新 Solc编译器 Tendermint共识 权限准入 交易校验 Rpc 状态存储 系统合约 加密算法 国密和S256,P256 支持国密sm2,sm3,sm4,国际的支持p256,比特币和以太坊都使用的s256.刚开始做的时候计算支持p256和国密,因为go sdk里面证书使用了p256。后在做的过程中发现国外证书很多还需要支持RSA,遂引入了gmssl,委员会中的PK公钥和证书做了分离。 统一的接口,外部调用同一签名验签方法 国密里面有个问题,无法 recover公钥 ,校验签名比较慢。 Toml文件配置 toml文件的优点在于不需要在启动的时候指定一系列参数 节点信息 网络ID 同步模式 委员会私钥 IP和端口 txpool gas门槛 txpool账户数 节点rpc端口api 存储目录 ipc websocket 开放api rpc 端口 p2p节点配置 证书 节点私钥 节点连接数 监听地址 创世区块 创世里面指定了 UseGas 指定有无币, KindOfCrypto 指定加密类型, PermisionWlSendTx ,

阿里内部!Knative 云原生应用开发指南(附网盘链接)

强颜欢笑 提交于 2020-11-22 00:39:56
今天跟大家分享的是阿里内部资料,帮助大家开启云原生时代Serverless之门, 文末下拉获取网盘链接 一、快速入门 1.初识 Knative: 跨平台的 Serverless 编排框架 2.在阿里云上一键安装 Knative 3.手动安装 Knative 4.Serving Hello World 5.Eventing Hello World 6.Tekton Hello World 二、Serving 进阶 1.自动扩缩容 - Autoscaler 2.Serving 健康检查机制分析 3.流量灰度和版本管理 4.服务路由管理 5.WebSocket 和 gRPC 服务 6.Serving Client 介绍 三、Eventing 进阶 1.定义无处不在的事件 -CloudEvent 2.关于 Broker/Trigger 事件模型 3.事件注册机制 - Registry 4.Sequeue 解析 5.Parallel 解析 四、云原生开发实战 1.日志和监控告警 2.调用链管理 3.使用 GitHub 事件源 4.基于 Kafka 实现消息推送 5.基于 MNS 与 OSS 实现人脸图片识别 6.基于 APIGateway 打造生产级别的 Knative 服务 7.三步走!基于 Knative Serverless 技术实现一个短网址服务 8.基于 Knative

nginx这些原理你都懂了吗?

强颜欢笑 提交于 2020-11-21 04:18:55
不废话,满满的都是干货,先收藏起来。 。 。 1. 了解一下在nginx使用中常见的信号处理 kill -SIGHUP $ngx_master_pid # 相当于nginx -s reload 从新启动新的work进程 kill -SIGTERM $ngx_work_pid # 重建指定nginx work进程ID的进程 对于nginx的master进程来说可以接收到的信号: 以下四个信号是可以通过nginx命令与参数实现的 TERM,INT 表示立刻停止nginx进程 QUIT 表示优雅的停止nginx进程,就是慢慢的停止nginx进程,不要对用户发送立刻结束连接,像tcp的reset复位请求这样的报文 HUP 表示重载配置文件 USR1表示重新打开日志文件 以下两个信号专门用于进行nginx的热部署的时候使用,但是只能通过linux命令行的kill实现 USR2 发送热更新信号 WINCH 用于通知下线旧的work进程 当我们在命令行中使用nginx与参数实现对nginx的管理时,实质上就是获取当前nginx运行的pid文件中的pid,然后通过命令行向pid发送对应的信号 reload -> HUP Reopen -> USR1 stop -> TERM Quit -> QUIT 2. nginx在重载配置文件究竟做了什么? 思考优雅的退出和立即退出有什么区别呢?你知道吗? 1

cpe动态ip,做端口映射方案

帅比萌擦擦* 提交于 2020-11-21 04:05:23
cpe介绍 无线cpe,实际是一种接收移动信号并以无线WIFI信号转发出来的移动信号接入设备。 应用场景 机场施工难度大,费用高,走有线通讯方案困难,因此,用5G cpe插流量卡,解决有线通讯短板。 问题 管理后台有ros websocket数据通讯以及rtsp流地址播放视频的需求,但是这两个需求都要求使用静态ip,与cpe每次重启随机分配的动态ip冲突 解决办法 运用VPN组建局域网,设定固定虚拟ip,然后做端口映射方案,解决cpe动态ip通讯问题。 来源: oschina 链接: https://my.oschina.net/u/4322161/blog/4654780