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");
}

  

web_socket.js

最新文章

  1. 【微信小程序开发】之如何获取免费ssl证书【图文步骤】
  2. 002 C#学前入门
  3. C#:注册机的实现【提供源代码下载】
  4. 另类angularjs应用
  5. Mysql分区技术
  6. [转]Servlet 工作原理解析
  7. Makefile教程
  8. linux tar打包
  9. [疑惑与解答] WxPython In Action -1
  10. [CSS3] 学习笔记-CSS入门基本知识
  11. 一个web应用的诞生(13)--冲向云端
  12. 【NOIP2016提高组】 Day2 T2 蚯蚓
  13. 项目实战9—企业级分布式存储应用与实战MogileFS、FastDFS
  14. Tomcat输出保存JVM GC日志文件
  15. oo第一次作业
  16. JS宽高理解
  17. H5 38-背景图片和插入图片区别
  18. javascript的性能优化tips
  19. Lua常用封装方法
  20. Echarts 简单报表系列四:雷达图

热门文章

  1. mongodb .explain(&#39;executionStats&#39;) 查询性能分析(转)
  2. lambda从入门到精通
  3. 使用PHPExcel将数据导出至Excel
  4. 教你使用HTML5原生对话框元素,轻松创建模态框组件
  5. 异步时代-java的协程路在何方
  6. H5 颜色属性
  7. Python入门-函数
  8. 2017湘潭大学邀请赛G题(贪心+优先队列)
  9. CMMI摘要
  10. LR 两种html与url录制