jdk6使用WebSocket
pom.xml
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.3.4</version>
</dependency>
SimpleWebSocketServer.java
package com.geostar.gfstack.operationcenter.common.util; import com.geostar.gfstack.framework.log.common.GeoLogger;
import com.geostar.gfstack.operationcenter.common.properties.ConfigGeoStar;
import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer; import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.Collection; public class SimpleWebSocketServer extends WebSocketServer { private static GeoLogger logger = GeoLogger.getLogger(SimpleWebSocketServer.class); private static SimpleWebSocketServer instance; public static final Integer port = ConfigGeoStar.getWebSocketPort(); @Override
public void onOpen(WebSocket conn, ClientHandshake handshake) {
logger.info("Server open!");
} @Override
public void onClose(WebSocket conn, int code, String reason, boolean remote) {
logger.info("Server closed!");
} @Override
public void onMessage(WebSocket conn, String message) {
this.sendToAll(message);
} @Override
public void onError(WebSocket conn, Exception e) {
logger.error(e.getMessage(), e);
} @Override
public void onStart() {
logger.info("Server started!");
} public void sendToAll(String text) {
Collection<WebSocket> con = connections();
synchronized (con) {
for (WebSocket c : con) {
c.send(text);
}
}
} private SimpleWebSocketServer() {
super();
try {
SimpleWebSocketServer s = new SimpleWebSocketServer(port);
s.start();
} catch (UnknownHostException e) {
e.printStackTrace();
}
} private SimpleWebSocketServer(int port) throws UnknownHostException {
super(new InetSocketAddress(port));
} public synchronized static SimpleWebSocketServer getInstance() {
if (instance == null) {
instance = new SimpleWebSocketServer();
}
return instance;
} }
SimpleWebSocketClient.java
package com.geostar.gfstack.operationcenter.common.util; import com.geostar.gfstack.framework.log.common.GeoLogger;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft;
import org.java_websocket.handshake.ServerHandshake; import java.net.URI; public class SimpleWebSocketClient extends WebSocketClient { private static GeoLogger logger = GeoLogger.getLogger(SimpleWebSocketClient.class); public SimpleWebSocketClient(URI serverUri, Draft protocolDraft) {
super(serverUri, protocolDraft);
} @Override
public void onOpen(ServerHandshake serverHandshake) {
logger.info("Client open!");
} @Override
public void onMessage(String s) {
logger.info("Client message:"+s);
} @Override
public void onClose(int i, String s, boolean b) {
logger.info("Client onClose!");
} @Override
public void onError(Exception e) {
logger.error(e.getMessage(), e);
} }
前端js用法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="../staticresource/fe-lib/websocket/web_socket.js"></script> <script type="text/javascript"> // Write your code in the same way as for native WebSocket:
var ws = new WebSocket('ws://192.168.30.174:8887')
ws.onopen = function() {
console.log('open')
ws.send('Hello') // Sends a message.
}
ws.onmessage = function(e) {
// Receives a message.
console.log(e.data);
}
ws.onclose = function() {
console.log('close')
} </script>
</head>
<body> </body>
</html>
java客户端用法:
SimpleWebSocketServer.getInstance();
URI uri = null;
WebSocketClient client = null;
try {
uri = new URI("ws://localhost:" + SimpleWebSocketServer.port);
} catch (URISyntaxException e) {
e.printStackTrace();
}
if(uri != null){
client = new SimpleWebSocketClient(uri, new Draft_6455());
client.connect();
}
if(client != null){
client.send("hello java");
}
jdk6使用WebSocket的更多相关文章
- 关于tomcat7下websocket不能使用
tomcat启动时提示 信息: JSR 356 WebSocket (Java WebSocket 1.0) support is not available when running on Java ...
- 漫扯:从polling到Websocket
Http被设计成了一个单向的通信的协议,即客户端发起一个request,然后服务器回应一个response.这让服务器很为恼火:我特么才是老大,我居然不能给小弟发消息... 轮询 老大发火了,小弟们自 ...
- 细说WebSocket - Node篇
在上一篇提高到了 web 通信的各种方式,包括 轮询.长连接 以及各种 HTML5 中提到的手段.本文将详细描述 WebSocket协议 在 web通讯 中的实现. 一.WebSocket 协议 1. ...
- java使用websocket,并且获取HttpSession,源码分析
转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6238826.html 一:本文使用范围 此文不仅仅局限于spring boot,普通的sprin ...
- WebSocket - ( 一.概述 )
说到 WebSocket,不得不提 HTML5,作为近年来Web技术领域最大的改进与变化,包含CSS3.离线与存储.多媒体.连接性( Connectivity )等一系列领域,而即将介绍的 WebSo ...
- php+websocket搭建简易聊天室实践
1.前言 公司游戏里面有个简单的聊天室,了解了之后才知道是node+websocket做的,想想php也来做个简单的聊天室.于是搜集各种资料看文档.找实例自己也写了个简单的聊天室. http连接分为短 ...
- Demo源码放送:打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
随着HTML5 WebSocket技术的日益成熟与普及,我们可以借助WebSocket来更加方便地打通BS与CS -- 因为B/S中的WebSocket可以直接连接到C/S的服务端,并进行双向通信.如 ...
- Cowboy 开源 WebSocket 网络库
Cowboy.WebSockets 是一个托管在 GitHub 上的基于 .NET/C# 实现的开源 WebSocket 网络库,其完整的实现了 RFC 6455 (The WebSocket Pro ...
- 借助Nodejs探究WebSocket
文章导读: 一.概述-what's WebSocket? 二.运行在浏览器中的WebSocket客户端+使用ws模块搭建的简单服务器 三.Node中的WebSocket 四.socket.io 五.扩 ...
随机推荐
- 深入理解Java中的反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. ...
- VS2012添加数据库连接时报错,未能加载文件或程序集microsoft.sqlserver.management.sdk.sfc
今天在VS2012中添加数据库连接时报错 未能加载文件或程序集microsoft.sqlserver.management.sdk.sfc,Version=11.0 查了很多资料,最后下载安装了Sha ...
- python中map()函数用法
map函数的原型是map(function, iterable, …),它的返回结果是一个列表. 参数function传的是一个函数名,可以是python内置的,也可以是自定义的. 参数iterabl ...
- 钢琴培训班课程、课时及费用管理系统已提供ACM3.0新版下载
中小型艺术培训班课程.课时及费用管理系统. 2014新版 ACM3测试版下载:http://www.cnblogs.com/Charltsing/p/ACM3.html 您有任何功能需求,欢迎QQ 5 ...
- 未能加载文件或程序集"Newtonsoft.Json, Version=4.5.0.0
这问题遇到好几次了,重新更改了引用都不好使,有的时候版本改成一致就好了,但是有的地方你不知道在哪里用了就不好排查,所性在config里面加个配置让程序运行的时候去处理得了~ 很实用,放在configu ...
- python 中的super()继承,搜索广度为先
一.python中类的继承 1.1 单继承 在python 中我们可以这样来定义一个类:及继承它的子类 class Father: def __init__(self, mes): #1 父类的ini ...
- Python之字符串格式化
1) 占位符%s: %s是通用的占位符,所有类型不管是string还是int还是float全都代表. 如果使用%d,则只能代表整数:如果是%f,则只能代表小数: 2) 直接用加号+连接 ...
- 自己实现数据结构系列三---Stack
一.代码部分 1.定义接口 public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e); E ...
- Git的配置与使用
Git的配置与使用 一,未配置过git 1.1,安装Git https://git-for-windows.github.io/ 1,2,鼠标右键点击Git Bash Here 1.3,输入命令 cd ...
- 3 The simple past
1 许多动词通过在原型之后添加-ed 构成一般过去式. 其他动词有不规则的过去式,使用一般过去式的时间词语出现在句首或者句尾 The company grew from 400 to 5,000 pe ...