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

无忧网络网站建设开发网站建设

无忧网络网站建设,开发网站建设,中企动力福利待遇好吗,生鲜网站建设目录 1.1 WebSocket介绍 http协议: webSocket协议: 1.2WebSocket协议: 1.3客户端(浏览器)实现 1.3.2 WebSocket对象的相关事宜: 1.3.3 WebSOcket方法 1.4 服务端实现 服务端如何接收客户端发送的请…

目录

1.1 WebSocket介绍

http协议:

webSocket协议:

1.2WebSocket协议:

1.3客户端(浏览器)实现

1.3.2 WebSocket对象的相关事宜:

1.3.3 WebSOcket方法

1.4 服务端实现

服务端如何接收客户端发送的请求呢?

服务端如何推送数据给客户端呢?


1.1 WebSocket介绍

WebSocket 是一种网络通信协议。

        WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通信的协议。

        HTTP 协议是一种无状态、无连接、单向的应用层协议。它采用了 请求/响应 模型。通信请求只能由客户端发起,服务端对请求做出应答处理。(单向的:采用的是请求+响应的模式)

        这种通信模型有一个弊端:HTTP协议无法实现服务器主动向客户端发起消息。

        这种单项请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。大多数Web应用程序将通过频繁的异步ajax请求实现长轮询。轮询效率低,非常浪费资源(必须不停的连接,或者HTTP连接始终打开)

http协议:

webSocket协议:

1.2WebSocket协议:

        WebSocket协议有两个部分,握手和数据传输

        握手时基于http协议,在数据传输阶段基于WebSocket协议

1.3客户端(浏览器)实现

var ws = new WebSocket(url);
//参数url格式说明: ws://ip地址:端口号/资源名称

1.3.2 WebSocket对象的相关事宜:

事件

事件处理程序

描述

open

websocket对象.onopen

连接建立时触发

message

websocket对象.onmessage

客户端接收服务端数据时触发

error

websocket对象.onerror

通信发生错误时触发

close

websocket对象.onclose

连接关闭时触发

1.3.3 WebSOcket方法

WebSocket对象的相关方法:

方法

描述

send()

使用连接发送数据

1.4 服务端实现

Java WebSocket应用一系列的WebSocketEndpoint组成。Endpoint是一个java对象,代表WebSocket链接的一端,对于服务端,我们可以视为处理具体WebSocket消息的接口。【一个EndPoint对象和一个客户端产生一一对应的关系】

我们可以通过两种方式定义Endpoint:

  • 编程式:继承类 javax.websocket.Endpoint并实现其方法。
  • 注解式:即定义一个POJO,并添加@ServerEndpoint相关注解

Endpoint实例在WebSocket握手时创建,并在客户端与服务端连接过程中有效,最后在链接关闭时结束。在Endpoint接口中明确了定义与其生命周期相关的方法,生命周期方法如下:

方法

含义描述

注解

onClose

当会话关闭时调用。

@OnClose

onOpen

当开启一个新的会话时调用, 该方法是客户端与服务端握手成功后调用的方法。

@OnOpen

onError

当连接过程中异常时调用。

@OnError

服务端如何接收客户端发送的请求呢?

通过为Session添加MessageHandler消息处理器来接收消息,当采用注解方式定义EndPoint时,我们还可以通过@OnMessage注解指定接收消息的方法。

服务端如何推送数据给客户端呢?

发送消息则由 Remote Endpoint完成,其实例由Session维护,根据使用情况,我们可以通过Session.getBasicRemote 获取同步消息发送的实例,然后调用其 sendXxx( )方法就可以发送消息,可以通过Session.getAsyncRemote获取异步消息发送实例。

下面是一个简单的案例:

@ServerEndpoint("/robin")
public class ChatEndPoint {private static Set<ChatEndPoint> webSocketSet = new HashSet<>();private Session session;@OnMessagepublic void onMessage(String message, Session session) throws IOException {System.out.println("接收的消息是:" + message);System.out.println(session);//将消息发送给其他的用户for (Chat chat : webSocketSet) {if(chat != this) {chat.session.getBasicRemote().sendText(message);}}}@OnOpenpublic void onOpen(Session session) {this.session = session;webSocketSet.add(this);}@OnClosepublic void onClose(Session seesion) {System.out.println("连接关闭了。。。");}@OnErrorpublic void onError(Session session,Throwable error) {System.out.println("出错了。。。。" + error.getMessage());}
}

http://www.mmbaike.com/news/76938.html

相关文章:

  • 对网站做数据统计的目的是什么意思免费的h5制作网站模板
  • 青岛做网站青岛做网站百度网盘搜索入口
  • 网站备案 异地站内优化seo
  • 广州专业的网站建设公司哪家好百度舆情监测平台
  • 连云港做网站建设最基本的网站设计
  • dz做网站缺点免费推广网站大全集合
  • 中小企业erp系统哪个好windows优化大师怎么用
  • 做销售找客户的网站百度招聘电话
  • 如何建设学校的微网站首页seo搜索优化邵阳
  • 官方网站的英文网络平台推广
  • 网站建设 备案什么意思太原优化排名推广
  • 有什么超好用的做简历的网站网络宣传的方法有哪些
  • 杭州企业网站优化网站收录提交入口
  • 网站名字大全熊猫关键词工具
  • 西宁公司官方网站建设网络营销服务商
  • 如何解决网站兼容性问题网站维护是做什么的
  • wordpress增加主题更新手机优化软件排行
  • 广州十大网站建设移动广告平台
  • 家教辅导培训网站建设营销策划书
  • 广告资源发布平台seo是什么服务器
  • 宠物网站 html模板上海比较大的优化公司
  • 万网公司注册网站苏州百度推广开户
  • 微软制作网页软件网站seo运营
  • 做粘土的网站汕头网站建设公司
  • 子洲网站建设制作关键词推广软件排名
  • 哈尔滨门户网站设计报价自助建站系统
  • 百度画一画关键词排名优化方法
  • 咖啡网站源码新闻发布
  • 同创企业网站建设杭州排名推广
  • 服务器怎么限制ip访问网站吗广告优化师是做什么的