【Html5客户端API】

1.创建websocket对象

var connection =  new WebSocket('ws[s]://www.example.com/chat',可选自己实现的协议{'chat.v1'});

//如果消息是二进制形式 connection.binaryType = 'arraybuffer';

2.使用websocket对象

    * 内部使用connection.readyState:CONNECTING(0) OPEN(1) | CLOSING(2) | CLOSED(3)

closing状态 => closed状态  触发onClose(event)        Clean reason code(值1000为正常)

connecting状态 => open状态 触发onOpen事件。

onerror(event)   data

onmessage(event) data

close(code,可选reason)

send(onlyone)  仅接受一个参数 String、Blob、ArrayBuffer、ArrayBufferView。

connection.onopen =  function(){

  var intervalId = window.setInerval(function(){

    if(connection.readyState != WebSocket.OPEN){

      window..clearInterval(intervalid);

      return;

    }

    if(connection.bufferedAmount == 0)

      connection.send(updateModelData);

  },50);

}

……………………………………………………………………………………………………………………………………

【Java客户端的WebSocket API】

一、 【连接上WebSocket Server】

//WebSocketContainer提供所有WebSocket客户端特性访问

ContainerProvider.getWebSocketContainer(),connectToServer(重载4个方法) 返回一个session (可以用来关闭会话、或者发送消息到远程终端)

1.基本参数是uri

2.使用@ClientEndPoint   或者使用@EndPoint + ClientEndPointConfig

二、【通信】

WebSocket的 EndPoint 有三个方法  onOpen  onClose  onError

ClientEndPoint 也可以有@OnOpen @OnClose @OnError

两者通过 onMessage通信,接收消息。

……………………………………………………………………………………………………………………………………

三、【服务器API】

WebSocket提供了API接口,一般Web容器已经提供了客户端和服务端实现。

如果需求只是客户端(包括浏览器、java终端)

<dependency>

  <groupId>javax.websocket</groupId>

  <artifactId>javax.websocket-client-api</artifactId>

  <version>1.0.0</version>

  <scope>provided</scope>

</dependency>

【@ServerEndponit("/game/{gameType}")】最重要握手之后,服务器和客户端都编程对等端点。

只需要使用@ServerEndPoint注解服务器终端类,WebSocket实现自动扫描类的注解,自动选择注册服务器终端。

ServerContainer将在每次收到WebSocket连接时创建对应终端类的实例,在连接关闭后销毁。

WebSocket 快速开始的更多相关文章

  1. 【WebSocket】WebSocket快速入门

    WebSocket介绍 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动 ...

  2. 细说websocket快速重连机制

    文|马莹莹 网易智慧企业web前端开发工程师 引言 在一个完善的即时通讯应用中,websocket是极其关键的一环,它为web应用的客户端和服务端提供了一种全双工的通信机制,但由于它本身以及其底层依赖 ...

  3. 用 Go + WebSocket 快速实现一个 chat 服务

    前言 在 go-zero 开源之后,非常多的用户询问是否可以支持以及什么时候支持 websocket,终于在 v1.1.6 里面我们从框架层面让 websocket 的支持落地了,下面我们就以 cha ...

  4. 八问WebSocket协议:为你快速解答WebSocket热门疑问

    一.引言 WebSocket是一种比较新的协议,它是伴随着html5规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持.它使用方面.应用广泛,已经渗透到前后端开发的各种场景中. 对http一问一答 ...

  5. java SSM框架 代码生成器 快速开发平台 websocket即时通讯 shiro redis

    A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 , ...

  6. 如何快速搞定websocket

    5 个步骤快速掌握websocket消息发送和接收 1. 获取您的 appkey 先注册一个账号,登录后,创建一个应用,就能得到您的 appkey. 详情见 获取开发者账号和 appkey 2. 客户 ...

  7. 使用Node.js快速搭建WebSocket server

    原文地址:http://my.oschina.net/yushulx/blog/309413 目录[-] 安装 服务端 客户端 参考 安装 ? 1 npm install ws 服务端 server. ...

  8. 快速搭建CentOS+ASP.NET Core环境支持WebSocket

    环境:CentOS 7.x,.net core 2 以下.net core 2安装操作为官方方法.如果你使用Docker,那么更简单了,只需要docker pull microsoft/dotnet就 ...

  9. 如何用Baas快速在腾讯云上开发小程序-系列1:搭建API & WEB WebSocket 服务器

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/221059001487422606 来源:腾云阁 h ...

随机推荐

  1. [WC2018]州区划分(FWT)

    题目描述 题解 这道题的思路感觉很妙. 题目中有一个很奇怪的不合法条件,貌似和后面做题没有什么关系,所以我们先得搞掉它. 也就是判断一个点集是否合法,也就是判断这个点集是否存在欧拉回路. 如果存在欧拉 ...

  2. 通俗讲解MOSFET

    一位工程师曾经对我讲,他从来不看MOSFET数据表的第一页,因为“实用”的信息只在第二页以后才出现.事实上,MOSFET数据表上的每一页都包含有对设计者非常有价值的信息.但人们不是总能搞得清楚该如何解 ...

  3. hdu 2609 How many(最小表示法)

    Problem Description Give you n ( n < 10000) necklaces ,the length of necklace will not large than ...

  4. agc031

    T1 题意:给你一个串,求所有子序列个数,满足没有相同字符.1e5,2s. 解:考虑一个合法的子序列.其中每个字母的出现位置都有(出现次数)种选择.还可以不选,要 + 1. 然后乘起来就做完了.如果变 ...

  5. A1087. All Roads Lead to Rome

    Indeed there are many different tourist routes from our city to Rome. You are supposed to find your ...

  6. [luogu3388][割点]

    题目链接 思路 真板子题.割点是指在一个无向图中,删去之后图将不再连通的点.可以用tarjan算法求.根据割点有两种情况,一种是根,一种是非根.如果不是根的就去判断在tarjan的时候当前节点所能到的 ...

  7. netsh interface portproxy的一个简单例子

    netsh interface portproxy的微软帮助文档地址: https://technet.microsoft.com/zh-cn/library/cc776297(WS.10).aspx ...

  8. 斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)

    绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制 ...

  9. javascript学习一、js的初步了解

    1.javascript的简介: *javascript 是一种基于对象和事件驱动的语言,主要应用于客户端. -- 基于对象:  ** 提供了很多对象,可以直接使用. --事件驱动: ** html做 ...

  10. prototype 与 proto的关系是什么:

    __proto__是什么? 我们在这里简单地说下.每个对象都会在其内部初始化一个属性,就是__proto__,当我们访问一个对象的属性 时,如果这个对象内部不存在这个属性,那么他就会去__proto_ ...