WebSocket 快速开始
【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 快速开始的更多相关文章
- 【WebSocket】WebSocket快速入门
WebSocket介绍 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动 ...
- 细说websocket快速重连机制
文|马莹莹 网易智慧企业web前端开发工程师 引言 在一个完善的即时通讯应用中,websocket是极其关键的一环,它为web应用的客户端和服务端提供了一种全双工的通信机制,但由于它本身以及其底层依赖 ...
- 用 Go + WebSocket 快速实现一个 chat 服务
前言 在 go-zero 开源之后,非常多的用户询问是否可以支持以及什么时候支持 websocket,终于在 v1.1.6 里面我们从框架层面让 websocket 的支持落地了,下面我们就以 cha ...
- 八问WebSocket协议:为你快速解答WebSocket热门疑问
一.引言 WebSocket是一种比较新的协议,它是伴随着html5规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持.它使用方面.应用广泛,已经渗透到前后端开发的各种场景中. 对http一问一答 ...
- java SSM框架 代码生成器 快速开发平台 websocket即时通讯 shiro redis
A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 , ...
- 如何快速搞定websocket
5 个步骤快速掌握websocket消息发送和接收 1. 获取您的 appkey 先注册一个账号,登录后,创建一个应用,就能得到您的 appkey. 详情见 获取开发者账号和 appkey 2. 客户 ...
- 使用Node.js快速搭建WebSocket server
原文地址:http://my.oschina.net/yushulx/blog/309413 目录[-] 安装 服务端 客户端 参考 安装 ? 1 npm install ws 服务端 server. ...
- 快速搭建CentOS+ASP.NET Core环境支持WebSocket
环境:CentOS 7.x,.net core 2 以下.net core 2安装操作为官方方法.如果你使用Docker,那么更简单了,只需要docker pull microsoft/dotnet就 ...
- 如何用Baas快速在腾讯云上开发小程序-系列1:搭建API & WEB WebSocket 服务器
版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/221059001487422606 来源:腾云阁 h ...
随机推荐
- Testlink解决大用例导入问题
最近公司同事需要将别的testlink的用例迁移过来,由于现在新的服务器也在使用,不能使用数据库导入的办法,只能用xml文件进行导入,不过在导入的时候出现了个没遇到的问题,报错文件太大,无法上传. 解 ...
- OO第一阶段纪实
$ 0 写在前面 在DDL一次次的推动下,历经三个周期的更迭,一个月的时光匆匆而过.谨撰此博文,以记录这一段见证成长的心路历程. $ 0-0 JAVA“一天速成”没有修习过传说中的“OO先导课”,在学 ...
- [hdu5215][Cycle]
题目链接 思路 首先可以通过二分图染色找到奇环和一部分偶环.这个比较简单 但是还有一种偶环容易忽略. 如图(别问我为啥没节点4) 第一次可以找到1-2-3-1)这个奇环,第二次可以找到(3-5-6-3 ...
- (转)c++ 回调函数
https://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 今天讨论下C/C++中的回调函数. 在理解“回调 ...
- 1.Ubuntu系统与vmware虚拟机的安装与使用
1.下载Ubuntu的镜像文件 种子文件的下载页面的链接:https://www.ubuntu.com/download/alternative-downloads 可以去选择版本的桌面版(Deskt ...
- 第二十四篇-用VideoView制作一个简单的视频播放器
使用VideoView播放视频,视频路径有三种: 1. SD卡中 2. Android的资源文件中 3. 网络视频 第一种,SD卡中的方法. 路径写绝对路径,如果不能播放,可以赋予读取权限. 效果图: ...
- PMP项目管理的49个过程,一张图让你全部了解
项目管理的49个过程,看表格显得比较单调,印象也不是很深,所以今天小编就给大家发一张图片,可以用一张图就能生动又详细的了解PMP项目管理的49个过程. 大家看完是不是觉得一目了然了呢,图片上传后不 ...
- request的基本应用
一.安装 pip install requests (mac前面加sudo) 二.requests的一些参数 method:一般是用的那种请求方法,是get还是post,delete或者delete ...
- Git学习笔记——搭建远程仓库
有空再把笔记移上来 注意点:git remote add origin不是相对于所有git仓库,只相对于当前git仓库 心得:远程建立裸仓库,意味着我不应该直接操作远程仓库.如果我是管理员,我应该先p ...
- 3 字节的 UTF-8 序列的字节 2 无效
由于目前写完了[消息队列]模块,想做个单元测试,所以就利用spring的import标签,将mq的配置文件加入了配置.结果出现了<3 字节的 UTF-8 序列的字节 2 无效>这个问题. ...