websocket使用demo

最近项目中用到了websocket,记录一下注意事项
1.tomcat版本(7.42不支持,7.57支持,检查tomcat lib中是否存在websocket-api.jar)
2.url设置 (ws://localhost:8080/a/websocket)

server端

package websocket;

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(value = "/websocket")
public class WebSocketTest {

	@OnMessage
    public void onMessage(String message, Session session)
    	throws IOException, InterruptedException {

		// 1.接收的信息
		System.out.println("收到: " + message);

		// 2.向客户端发信息
		session.getBasicRemote().sendText("开始");

		// 3.隔一段时间发一条信息
		int sentMessages = 0;
		while(sentMessages < 3){
			Thread.sleep(1000);
			session.getBasicRemote().
				sendText("发送topic数据. 测试: "
					+ sentMessages);
			sentMessages++;
		}

		// 4.结束发送
		session.getBasicRemote().sendText("结束");
    }

	@OnOpen
    public void onOpen () {
        System.out.println("连接客户端");
    }

    @OnClose
    public void onClose () {
    	System.out.println("断开连接");
    }
}

前台页面

<!DOCTYPE html>
<html>
<head>
<title> websockets测试</title>
</head>
<body>
	<div>
		<input type="submit" value="开始" onclick="start()" />
	</div>
	<div id="messages"></div>
	<script type="text/javascript">
		//设置URL
		var webSocket =  new WebSocket('ws://localhost:8080/a/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
				= '连接已建立';
		}

		function onError(event) {
			alert(event.data);
			alert("error");
		}

		//向服务器发送信息
		function start() {
			webSocket.send('订阅topic');
			return false;
		}
	</script>
</body>
</html>

效果图

时间: 2024-07-30 08:38:22

websocket使用demo的相关文章

我做的一个websocket的demo(php server)

notice: 通过命令行执行php文件  如 php -q c:\path\server.php 通过本地web服务器访问 http://127.0.0.1/websocket/index.php即可 notice: 需要php5.3或以上的执行环境,和一个web服务器如apache浏览器需支持html5 web socket这里监听 socket端口 9505,如遇到端口被占用可能需要在这两个文件内修改端口或者杀死相应端口进程 页面手机上看起来比pc上好看! 1.客户端代码 html文件 1

netty与websocket通信demo

netty v3.9.4 websocket建立前,客户端需要与服务器进行握手 确认websocket连接,也就是说在处理websocket请求前,必需要处理一些http请求. websocket到现在为止,已经有多个版本,netty有相应的对应类,这部分处理一般不需要人工干预. 如果运行正常的话,会在页面的文本框中显示1-20记数. 可以通过firefox或chrome的开发人员工具,显看浏览器与服务器的交互. 主要是HttpServerChannelHandler2,加了些注释和少量debu

WebSocket C# Demo

WebSocket 规范 WebSocket 协议本质上是一个基于 TCP 的协议.为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息”Upgrade: WebSocket”表 明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这

WebSocket技术demo

使用springboot快速搭建测试案例 <!-- 导入websocket --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> <version>1.3.5.RELEASE</version> </dependency>

Springboot websocket学习Demo

使用的是springboot2.1.4版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath /> <!-- lookup parent from rep

netty websocket 简单消息推送demo

今天心情很不好!!! 原因保密. 这篇是基于"netty与websocket通信demo". 错误想法:大量客户请求,共用一个worker,来实现推送. 正确作法:应该是对Channel对应的ChannelGroup进行操作,来实现推送. 一个Channel可以划分到多个ChannelGroup中. PushServerChannelHandler和DynMessage这两个类最重要,其实类基本没变. package org.sl.demo.chatserver; import jav

vue+websocket demo 实例

vue+websocket demo: <!-- vue + websocket连接demo --> <template> <div class="">vue + websocket连接demo</div> </template> <script> export default { data() { return { // 连接标志位 lockReconnect: false, wsCfg: { // websoc

tornado websocket

近期在网上找了些websocket的资料看了下.node和tornado等等本身已经实现了websocket的封装,所以使用起来会比較简单,php假设想要写websocket还须要自己跑一整套流程,比較麻烦. 依据网上的资料写了一个简单的websocket的demo,果真炫酷掉渣天,我是用tornado,网上多是实现实时聊天室的样例,想要实现点对点的聊天功能还须要在send函数那里加条件,目測是依据浏览器用户的id去推断的.代码例如以下: 服务端代码: #!/usr/bin/python #co

初识html5 WebSocket

1.  WebSocket概念 WebSocket是HTML5开始提供的一种Client与Server间进行全双工(full-duplex)通讯的网络技术 双工(duplex),指二台通讯设备之间,允许有双向的资料传输 Client和Server通过WebSocket Protocol建立连接后,双方可以互传数据并且双方都可以关闭此连接 2. HTTP概念 HTTP Protocol是无状态协议的,Client和Server通过HTTP Protocol建立连接后,将采用"request-res