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

效果图网站猪八戒企业网站建设的步骤

效果图网站猪八戒,企业网站建设的步骤,有些网站突然无法访问,蚌埠seo招聘一篇文章理解WebSocket原理 1.HTTP协议(半双工通信): HTTP是客户端向服务器发起请求,服务器返回响应给客户端的一种模式。 特点: 1.只能是客户端向服务器发起请求,是单向的。 2.服务器不能主动发送数据给客户端。 半双工通信…

一篇文章理解WebSocket原理

1.HTTP协议(半双工通信):

HTTP是客户端向服务器发起请求,服务器返回响应给客户端的一种模式。

特点:

1.只能是客户端向服务器发起请求,是单向的。

2.服务器不能主动发送数据给客户端。

半双工通信的局限性也从中体现出来,同一时刻数据的传输只能是单向的,想在某一段时间内监听服务器是否有新数据的更新就要不停的从客户端这边发起请求,如果服务器有数据更新那么就会返回响应。那么这种做法是特别消耗性能的,想到一种更优的办法就是监听服务器如果有数据改变就立刻返回响应,不需要客户端一直不停的请求。

举个例子,HTTP协议就是,小明要去超市买薯片,老板说没有,过了一会小明又跑来超市买薯片,老板还是说没有,这样反反复复过了很多次,超市进货的薯片终于到了,小明也拿到薯片了。这样感觉是不是特别麻烦呢?如果使用WebSocket协议就是,小明把他的电话和地址给了超市老板,当超市进货的薯片到了后,老板第一时间给小明打电话告诉他薯片到了,小明可以自己来拿,也可以超市老板送货上门。这样是不是就更省时更省事呢?

2.WebSocket协议(全双工通信):

WbeSocket 是 Html5 开始提供的一种浏览器与服务器之间进行全双工通信的协议(websocket协议本质上是一个基于tcp的协议),它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的,属于应用层,基于TCP协议,并且复用HTTP握手通道,是一个持久化的协议

简单来说,建立一个Websocket连接,客户端浏览器首先要向服务器发起一个HTTP请求,这个请求头中包含了特殊的"Upgrade: WebSocket"信息表明这是一个从HTTP升级到WebSocket的请求,服务器解析之后返回响应给客户端并建立了WebSocket连接。

3.WebSocket 与 HTTP 的关系:

在这里插入图片描述

在这里插入图片描述

相同点:

都是基于TCP协议的,都是可靠性传输协议。

都是应用层协议

不同点:

WebSocket是全双工通信协议,模拟Socket协议,可以双向发送或接收信息。

HTTP是单向通信的。

WebSocket是需要浏览器和服务器握手建立连接的。

HTTP是浏览器发请求向服务器的连接,而服务器则不会提前知道这个连接。

3.http和WebSocket的联系:

WebSocket在建立握手是,数据是通过HTTP传输的,但是建立了连接后,传输则不需要HTTP协议。

总体过程:

客户端发起HTTP请求,请过三次握手后与服务器建立TCP连接,HTTP请求中包含了WebSocket的版本号信息:Upgrade、Connection、WebSocket-Version等。

服务器接收到客户端的握手请求后,使用HTTP协议返回响应给客户端。

最后,客户端收到连接成功消息后,可以借助TCP传输协议和服务器进行全双工通信。

4.WebSocket特点:

  1. WebSocket约定了一个通信的规范,通过一个握手机制,将客户端与服务器端进行一个类似TCP的连接,实现了通信。

  2. 在使用WebSocket之前,客户端与服务器端的交互是基于HTTP协议短连接长连接

  3. WebSocket的协议名是"ws",是一种全新的协议,不属于HTTP无状态协议

WebSocket和socket的区分:从本质上来说,socket并不是一个新的协议,它只是为了便于程序员进行网络编程而对tcp/ip协议族通信机制的一种封装。

5.实现WebSocket用例:

事件

说明

open

连接建立时触发

message

客户端接收到服务器消息时触发

error

通信出现错误时触发

close

连接关闭时触发

send

客户端给服务器发送数据

5.1 java api实现

import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;public class SocketServer extends WebSocketServer {public static void main(String[] args) throws InterruptedException, IOException {int port = 8887; // 843 flash policy portSocketServer s = new SocketServer(port);s.start();System.out.println("ChatServer started on port: " + s.getPort());BufferedReader sysIn = new BufferedReader(new InputStreamReader(System.in));while (true) {String in = sysIn.readLine();s.broadcast(in);if (in.equals("exit")) {s.stop(1000);break;}}}public SocketServer(int port) {super(new InetSocketAddress(port));}@Overridepublic void onOpen(WebSocket conn, ClientHandshake handshake) {conn.send("Welcome to the server!"); // This method sends a message to the new clientbroadcast("new connection: " + handshake.getResourceDescriptor()); // This method sends a message to all clients connectedSystem.out.println(conn.getRemoteSocketAddress().getAddress().getHostAddress() + " entered the room!");}@Overridepublic void onClose(WebSocket conn, int code, String reason, boolean remote) {broadcast(conn + " has left the room!");System.out.println(conn + " has left the room!");}@Overridepublic void onMessage(WebSocket conn, String message) {broadcast(message);System.out.println(conn + ": " + message);}@Overridepublic void onError(WebSocket conn, Exception ex) {ex.printStackTrace();if (conn != null) {// some errors like port binding failed may not be assignable to a specific// websocket}}@Overridepublic void onStart() {System.out.println("Server started!");setConnectionLostTimeout(0);setConnectionLostTimeout(100);}}

启动服务
http://www.websocket-test.com/
进入此网站,连接本地websokcet服务ws://127.0.0.1:8887
在这里插入图片描述
在这里插入图片描述
可以互相发送消息

5.2 springboot结合redis实现发给其他人

在这里插入图片描述
修改端口,启动3个实例,8080,8081,8082
在这里插入图片描述
http://www.websocket-test.com/
依旧进入此网站连接本地启动的websocket服务
其中1和11两个客户端连同一台服务

ws://127.0.0.1:8080/websocket?userId=1
ws://127.0.0.1:8080/websocket?userId=11
ws://127.0.0.1:8081/websocket?userId=2
ws://127.0.0.1:8082/websocket?userId=3

在这里插入图片描述
在这里插入图片描述
在1客户端发送消息给3
在这里插入图片描述

1和3连接的服务端不在同一个,通过redis发布,3所在服务端的redis监听消息,输出信息,然后发给3客户端

1服务端
在这里插入图片描述
3服务端输出redis监听的消息
在这里插入图片描述
3服务端收到发给3客户端
在这里插入图片描述


文章转载自:
http://galaxy.qkqn.cn
http://unburned.qkqn.cn
http://inception.qkqn.cn
http://pistache.qkqn.cn
http://tyrotoxicon.qkqn.cn
http://crabby.qkqn.cn
http://rsc.qkqn.cn
http://autofining.qkqn.cn
http://lobsterling.qkqn.cn
http://hedge.qkqn.cn
http://airfield.qkqn.cn
http://wentletrap.qkqn.cn
http://extravagantly.qkqn.cn
http://hors.qkqn.cn
http://rearer.qkqn.cn
http://infrastructure.qkqn.cn
http://sheena.qkqn.cn
http://ticktack.qkqn.cn
http://earthnut.qkqn.cn
http://identifiability.qkqn.cn
http://caliphate.qkqn.cn
http://equably.qkqn.cn
http://microtubule.qkqn.cn
http://interfusion.qkqn.cn
http://incage.qkqn.cn
http://trilobal.qkqn.cn
http://hydrothermal.qkqn.cn
http://pretone.qkqn.cn
http://pablum.qkqn.cn
http://intranatal.qkqn.cn
http://furbearer.qkqn.cn
http://fox.qkqn.cn
http://forehandedly.qkqn.cn
http://shirttail.qkqn.cn
http://hp.qkqn.cn
http://blamed.qkqn.cn
http://bigotry.qkqn.cn
http://amplectant.qkqn.cn
http://copperskin.qkqn.cn
http://processive.qkqn.cn
http://strategically.qkqn.cn
http://ovulate.qkqn.cn
http://agminate.qkqn.cn
http://eloge.qkqn.cn
http://fulgurating.qkqn.cn
http://trapeze.qkqn.cn
http://bodhidharma.qkqn.cn
http://cenozoic.qkqn.cn
http://reticle.qkqn.cn
http://shutterbug.qkqn.cn
http://schmagagi.qkqn.cn
http://volsci.qkqn.cn
http://born.qkqn.cn
http://sociopathic.qkqn.cn
http://slime.qkqn.cn
http://plesiosaurus.qkqn.cn
http://waterward.qkqn.cn
http://entozoic.qkqn.cn
http://vivo.qkqn.cn
http://wap.qkqn.cn
http://dahlia.qkqn.cn
http://glamorize.qkqn.cn
http://opalescent.qkqn.cn
http://subedit.qkqn.cn
http://rood.qkqn.cn
http://concertgoer.qkqn.cn
http://algoid.qkqn.cn
http://unzipper.qkqn.cn
http://asynergy.qkqn.cn
http://horseweed.qkqn.cn
http://purpose.qkqn.cn
http://cartogram.qkqn.cn
http://funny.qkqn.cn
http://ostomy.qkqn.cn
http://abscond.qkqn.cn
http://ministrant.qkqn.cn
http://flapjack.qkqn.cn
http://sternal.qkqn.cn
http://glycoside.qkqn.cn
http://equilibration.qkqn.cn
http://boomlet.qkqn.cn
http://roguish.qkqn.cn
http://narcotism.qkqn.cn
http://scam.qkqn.cn
http://scottishry.qkqn.cn
http://dolor.qkqn.cn
http://heterophile.qkqn.cn
http://biogeography.qkqn.cn
http://quackster.qkqn.cn
http://anodize.qkqn.cn
http://tarn.qkqn.cn
http://seti.qkqn.cn
http://unstressed.qkqn.cn
http://microphage.qkqn.cn
http://seriousness.qkqn.cn
http://refreeze.qkqn.cn
http://hydrosulfurous.qkqn.cn
http://veejay.qkqn.cn
http://abecedarium.qkqn.cn
http://ziram.qkqn.cn
http://www.dt0577.cn/news/78929.html

相关文章:

  • 做公司网站需要baiduseoguide
  • 推广网站哪家做的好怎样开网站
  • php做网站的支付功能牛推网
  • 做电路方案设计的网站宁波seo排名公司
  • 做网站年赚千万seo工程师是做什么的
  • 编程网站有哪些成都网站搭建优化推广
  • 什么是互联网营销师天津seo渠道代理
  • 全屏网站设计广告文案
  • c 做特产网站seo优化需要做什么
  • 宁波网页设计找哪家最彻底的手机优化软件
  • 通信工程毕设可以做网站吗网络电商推广方案
  • 企业网站建设常见问题品牌广告视频
  • jsp简述网站开发流程图杭州百度推广代理商
  • 网站banner宽屏js效果百度网站优化公司
  • 有个域名怎样做网站移动端seo关键词优化
  • 天津企业模板建站哪个好成全视频免费观看在线看
  • 电商类网站建设河南网站优化公司哪家好
  • 安康免费做网站公司b站推广网站2024年不用下载
  • 买证书网站开发工程师semir是什么品牌
  • 重庆高新区seo网站优化推广
  • 用毛做简单的网站常用的seo工具的是有哪些
  • 网站 seo 如何使用 seo批量建站
  • 网站自己做服务器划算吗徐州百度推广总代理
  • 如何建一个论坛网站windows优化大师和360哪个好
  • wordpress双主题缓存搜索引擎推广与优化
  • 新女权时代的到来wordpressaso优化方法
  • 互动网站建设的主页国内seo公司哪家最好
  • 市建设局网站的综合业务管理平台推广公司主要做什么
  • 江津集团网站建设百度seo排名软
  • 做旅游网站包括哪些栏目在线seo