由于参加了黑客马拉松,团队需要这个技术,所以我下午就简单的实现了一下。找了好多demo,最大问题就是环境大家都没介绍清楚,我弄了很久很久的环境。

首先eclipse得是j2ee的,eclipse官网或者私信给我我发给你吧(如果你确实不会下)

另外一个就是tomcat,这个必须是7以上的版本在支持j2ee的websocket包。apache-tomcat-7.0.72-windows-x64.zip

再就是eclipse配jdk,一定要1.7以上,不会配也可以私信我。

这个都弄完之后环境就搭好了,在eclipse建一个server。

目录结构

WebSocketTest.java

package com.hust.websockettest;import java.io.IOException;import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;@ServerEndpoint("/websocket")
public class WebSocketTest {@OnMessagepublic void onMessage(String message, Session session) throws IOException, InterruptedException {// Print the client message for testing purposesSystem.out.println("Received: " + message);// Send the first message to the clientsession.getBasicRemote().sendText("This is the first server message");// Send 3 messages to the client every 5 secondsint sentMessages = 0;while (sentMessages < 3) {Thread.sleep(5000);session.getBasicRemote().sendText("This is an intermediate server message. Count: " + sentMessages);sentMessages++;}// Send a final message to the clientsession.getBasicRemote().sendText("This is the last server message");}@OnOpenpublic void onOpen() {System.out.println("Client connected");}@OnClosepublic void onClose() {System.out.println("Connection closed");}
}

index.html

<!DOCTYPE html>
<html>
<head>
<title>Testing websockets</title>
</head>
<body><div><input type="submit" value="Start" onclick="start()" /></div><div id="messages"></div><script type="text/javascript">var webSocket = new WebSocket('ws://localhost:8080/WebSocketTest/websocket');webSocket.onerror = function(event) {onError(event)};webSocket.onopen = function(event) {onOpen(event)};webSocket.onmessage = function(event) {onMessage(event)};function onMessage(event) {document.getElementById('messages').innerHTML += '<br />'+ event.data;}function onOpen(event) {document.getElementById('messages').innerHTML = 'Connection established';}function onError(event) {alert(event.data);}function start() {webSocket.send('hello');return false;}</script>
</body>
</html>

运行截图

WebSockets 握手
客户端和服务器端TCP连接建立在HTTP协议握手发生之后。通过HTTP流量调试,很容易观察到握手。客户端一创建一个 WebSocket实例,就会出现如下请求和服务器端响应:
注意: 我们只录入了WebSocket握手所用到的HTTP头。
请求:
GET /WebSocketTest/websocket HTTP/1.1
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Key: wVlUJ/tu9g6EBZEh51iDvQ==
响应:
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: websocket
Sec-WebSocket-Accept: 2TNh+0h5gTX019lci6mnvS66PSY=
注意:进行连接需要将通过Upgrade and Upgrade将协议升级到支持websocket HTTP头的Websocket协议。服务器响应表明请求被接受,协议将转换到WebSocket协议(HTTP状态码101):
HTTP/1.1 101 Web Socket Protocol Handshake

【WebSocket】手把手教会使用WebSocket相关推荐

  1. 认识HTML5的WebSocket 认识HTML5的WebSocket

    2019独角兽企业重金招聘Python工程师标准>>> 在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API.WebSocket提供了一个受欢迎的技 ...

  2. 【Android WebSocket】Android 端 WebSocket 基本用法 ( 下载 Java-WebSocket源码 | 导入 Java-WebSocket-1.5.2 工程作为依赖 )

    文章目录 一.下载 Java-WebSocket 源码 二.Android Studio 工程导入 Java-WebSocket 源码 使用 https://github.com/TooTallNat ...

  3. websocket之二:WebSocket编程入门

    一.WebSocket客户端 websocket允许通过JavaScript建立与远程服务器的连接,从而实现客户端与服务器间双向的通信.在websocket中有两个方法: 1.send() 向远程服务 ...

  4. python websocket库 安装_Python WebSocket

    安装 pip install websocket-client 先来看一下,长连接调用方式: ws = websocket.WebSocketApp("ws://echo.websocket ...

  5. 【linux】linux系统配置静态IP地址(超详细,手把手教会)

    目录 1  引 言 2  科 普 3  详细教程 3.1 步骤说明 3.2 demo案例 3.3 操作步骤 4  参考文献 1  引 言 在使用Linux系统的过程中,你是否有遇到过需要配置固定IP的 ...

  6. websocket python unity_Unity中Websocket的简单使用

    首先我们需要一个websocket服务器,之前的博文中有做 Tomcat架设简单Websocket服务器 用的时候打开就行了,先不管它 Unity中新建场景 建UI(UGUI) 有一个连接按钮Butt ...

  7. JSON.stringify( new WebSocket(ws://localhost:8080/websocket.do))

    //存在session//先是 test 后是 wsvar test = {test: '', test1: 1,fun:function () {console.info("函数可以吗&q ...

  8. js 链接websocket马上断开_SpringBoot+WebSocket实现简单的数据推送

    问题背景 为什么要要用websocket呢?websocket相对于传统http协议有什么优势呢? http协议有一个缺陷,就是通信只能由客户端发起,服务器返回数据,不能做到服务器主动向客户端推送.这 ...

  9. java websocket注解_【websocket】spring boot 集成 websocket 的四种方式

    集成 websocket 的四种方案 1. 原生注解 pom.xml org.springframework.boot spring-boot-starter-websocket WebSocketC ...

最新文章

  1. 使用c#+(datagrid控件)编辑xml文件
  2. 【NLP】四万字全面详解 | 深度学习中的注意力机制(四,完结篇)
  3. C语言数据结构与算法
  4. brother标签打印软件_标签打印软件如何设计食品留样标签模板
  5. 实力封装:Unity打包AssetBundle(二)
  6. java企业人事管理系统源码_企业人事管理系统完美版源代码 - 源码下载|行业应用软件|企业管理(财务/ERP/EIP等)|源代码 - 源码中国...
  7. Java实训项目5:GUI学生信息管理系统 - 实现步骤 - 创建数据库与表
  8. 三大运营商5G基站大单纷纷落地:华为、中兴、爱立信、大唐移动收获大
  9. 【elasticsearch】elasticsearch的问题之ERROR: bootstrap checks failed
  10. java bitmap 排序_Java实现2-BitMap排序
  11. C++设计模式之Proxy模式(代理模式)
  12. 联想服务器ThinkServer网卡驱动程序缺失的解决办法
  13. 微信小程序之滑动果冻效果
  14. glibc 知:手册08:消息翻译
  15. 怎样选择适合自己的视频加密软件方案?
  16. 全球最贵域名Sex.com将再度出售
  17. QEMU(3) 参数解析
  18. Javaweb后端开发必学(HTML、CSS、JS、Vue)
  19. Linux下的聊天软件
  20. 硬盘安装原版雪豹10.6.3与win7不完美教程

热门文章

  1. 关于mount nfs时-o nolock的问题
  2. CYYMysql 源码解读 2
  3. 通过驱动向Excle中写入数据
  4. pthread_join来接收线程的返回参数
  5. 大数据之-Hadoop伪分布式_配置历史服务器---大数据之hadoop工作笔记0027
  6. Web前端工作笔记007---h5 canvas_雨滴头像合成_图像合成_合成雨滴头像
  7. 数据库零碎要点001_数据库的4大特性(原子性_持久性_隔离性_一致性)_数据库的隔离级别(脏读_幻读_不可重复读)_mysql如何设置隔离级别
  8. NLP之路-查看获取文本语料库
  9. java 数字的进制转换
  10. linux上oracle登堡测评,Oracle Data Guard Linux 平台 Physical Standby 搭建实例