当前位置: 首页 > news >正文

网站开发 合同范本手机网站设计公司皆选亿企邦

网站开发 合同范本,手机网站设计公司皆选亿企邦,那个网站可以免费做风面,西安seo网站关键词WebSocket前言  WebSocket是HTML5的重要特性#xff0c;它实现了基于浏览器的远程socket#xff0c;它使浏览器和服务器可以进行全双工通信#xff0c;许多浏览器#xff08;Firefox、Google Chrome和Safari#xff09;都已对此做了支持。 在WebSocket出现之前#xff… WebSocket前言  WebSocket是HTML5的重要特性它实现了基于浏览器的远程socket它使浏览器和服务器可以进行全双工通信许多浏览器Firefox、Google Chrome和Safari都已对此做了支持。   在WebSocket出现之前为了实现即时通信采用的技术都是“轮询”即在特定的时间间隔内由浏览器对服务器发出HTTP Request服务器在收到请求后返回最新的数据给浏览器刷新“轮询”使得浏览器需要对服务器不断发出请求这样会占用大量带宽。   WebSocket采用了一些特殊的报头使得浏览器和服务器只需要做一个握手的动作就可以在浏览器和服务器之间建立一条连接通道。且此连接会保持在活动状态你可以使用JavaScript来向连接写入或从中接收数据就像在使用一个常规的TCP Socket一样。它解决了Web实时化的问题相比传统HTTP有如下好处 一个Web客户端只建立一个TCP连接Websocket服务端可以推送(push)数据到web客户端.有更加轻量级的头减少数据传送量WebSocket URL的起始输入是ws://或是wss://在SSL上。一个带有特定报头的HTTP握手被发送到了服务器端接着在服务器端或是客户端就可以通过JavaScript来使用某种套接口socket这一套接口可被用来通过事件句柄异步地接收数据。   WebSocket原理 WebSocket的协议颇为简单在第一次handshake通过以后连接便建立成功其后的通讯数据都是以”\x00″开头以”\xFF”结尾。在客户端这个是透明的WebSocket组件会自动将原始数据“掐头去尾”。 浏览器发出WebSocket连接请求然后服务器发出回应然后连接建立成功这个过程通常称为“握手” (handshaking)。请看下面的请求和反馈信息    图1 WebSocket的request和response信息 在请求中的Sec-WebSocket-Key是随机的对于整天跟编码打交道的程序员一眼就可以看出来这个是一个经过base64编码后的数据。服务器端接收到这个请求之后需要把这个字符串连接上一个固定的字符串 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 即f7cb4ezEAl6C3wRaU6JORA连接上那一串固定字符串生成一个这样的字符串 f7cb4ezEAl6C3wRaU6JORA258EAFA5-E914-47DA-95CA-C5AB0DC85B11 对该字符串先用 sha1安全散列算法计算出二进制的值然后用base64对其进行编码即可以得到握手后的字符串 rE91AJhfC6JdVcVXOGJEADEJdQ 将之作为响应头Sec-WebSocket-Accept的值反馈给客户端。   Go实现WebSocket Go语言标准包里面没有提供对WebSocket的支持但是在由官方维护的go.net子包中有对这个的支持你可以通过如下的命令获取该包 go get golang.org/x/net/websocket WebSocket分为客户端和服务端接下来我们将实现一个简单的例子:用户输入信息客户端通过WebSocket将信息发送给服务器端服务器端收到信息之后主动Push信息到客户端然后客户端将输出其收到的信息客户端的代码如下 html head/head bodyscript typetext/javascriptvar sock null;var wsuri ws://127.0.0.1:1234;window.onload function() {console.log(onload);sock new WebSocket(wsuri);sock.onopen function() {console.log(connected to wsuri);}sock.onclose function(e) {console.log(connection closed ( e.code ));}sock.onmessage function(e) {console.log(message received: e.data);}};function send() {var msg document.getElementById(message).value;sock.send(msg);};/scripth1WebSocket Echo Test/h1formpMessage: input idmessage typetext valueHello, world!/p/formbutton οnclicksend();Send Message/button /body /html 可以看到客户端JS很容易的就通过WebSocket函数建立了一个与服务器的连接sock当握手成功后会触发WebScoket对象的onopen事件告诉客户端连接已经成功建立。客户端一共绑定了四个事件。 1onopen 建立连接后触发2onmessage 收到消息后触发3onerror 发生错误时触发4onclose 关闭连接时触发我们服务器端的实现如下 1 package main2 3 import (4 golang.org/x/net/websocket5 fmt6 log7 net/http8 )9 10 func Echo(ws *websocket.Conn) { 11 var err error 12 13 for { 14 var reply string 15 16 if err websocket.Message.Receive(ws, reply); err ! nil { 17 fmt.Println(Cant receive) 18 break 19 } 20 21 fmt.Println(Received back from client: reply) 22 23 msg : Received: reply 24 fmt.Println(Sending to client: msg) 25 26 if err websocket.Message.Send(ws, msg); err ! nil { 27 fmt.Println(Cant send) 28 break 29 } 30 } 31 } 32 33 func main() { 34 http.Handle(/, websocket.Handler(Echo)) 35 36 if err : http.ListenAndServe(:1234, nil); err ! nil { 37 log.Fatal(ListenAndServe:, err) 38 } 39 } View Code 当客户端将用户输入的信息Send之后服务器端通过Receive接收到了相应信息然后通过Send发送了应答信息。     图2 WebSocket服务器端接收到的信息 通过上面的例子我们看到客户端和服务器端实现WebSocket非常的方便Go的源码net分支中已经实现了这个的协议我们可以直接拿来用目前随着HTML5的发展我想未来WebSocket会是Web开发的一个重点我们需要储备这方面的知识。   转载于https://astaxie.gitbooks.io/build-web-application-with-golang/zh/08.2.html 转载于:https://www.cnblogs.com/Paul-watermelon/p/11580563.html
http://wiki.neutronadmin.com/news/270382/

相关文章:

  • 淘宝网站建设规划书wordpress 协议
  • 网站关键词推广方案深圳 福田网站建设
  • 网站规划与建设周正刚设计网页界面
  • 网上哪个网站教做西点做网站的视频
  • 国家企业信用公示系统官方网站wordpress 目录权限
  • 青岛网站建站公司杭州专业网站建设
  • 中国铁路建设投资公司网站熊学军室内设计学校全国排名
  • 榆中建设局网站茂名模板建站哪家好
  • 自己做培训需要网站吗现在做网站一般多少钱
  • 花桥网站制作中山网站推广
  • 算命 网站开发重庆工程建设招标网官方网站
  • 江西企业网站建设价格上海网站建设-中国互联
  • 淘宝客建设网站首页域名注册和网站建设
  • 网站备案的服务器wordpress yosat
  • 阿里云域名注册服务网站广告外链购买交易平台
  • 网站是如何优化的门户网站属于新媒体吗
  • 福州电子商务网站建设wordpress下雪插件
  • 百度如何创建网站做二手家具回收哪个网站好
  • 人人车网站建设wordpress font.googleapis
  • hdwiki做网站形容网站开发的词
  • 建设网站免费支持phpwordpress百度和分类
  • 浙江网站建设哪家权威烟台卓通网络科技有限公司
  • 韩顺平 开源网站网站模板整站
  • 北京网站设计制作关键词优化微信小程序开发推广海外网站怎么浏览
  • 十大品牌网站wordpress永久免费
  • 中山哪里做网站低代码开发平台公司
  • 资源网站哪个好网站建设的相关职位
  • 网站开发 问题 关键技术手机网站你们
  • 企业网站搜索推广烟台做网站优化
  • 江西省城乡建设培训中心网站郑州建设工程招标信息网