Java WebSocket库:https://github.com/TooTallNate/Java-WebSocket
https://github.com/TooTallNate/Java-WebSocket
以下是简单示例:
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import static java.lang.System.err;
import static java.lang.System.out;
import java.net.InetSocketAddress;
import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer; public class Main { private static class WebScoketServerImpl extends WebSocketServer { private WebScoketServerImpl(int port) {
super(new InetSocketAddress(port));
} @Override
public void onOpen(WebSocket conn, ClientHandshake handshake) {
out.println("WebScoketServerImpl.onOpen(WebSocket, ClientHandshake) called");
} @Override
public void onClose(WebSocket conn, int code, String reason, boolean remote) {
out.println("WebScoketServerImpl.onClose(WebSocket, int, String, boolean) called: " + reason);
} @Override
public void onMessage(WebSocket conn, String message) {
out.println("WebScoketServerImpl.onMessage(WebSocket, String) called: " + message);
JsonObject root = new JsonParser().parse(message).getAsJsonObject();
if (root.get("type").getAsString().equals("print")) {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("type", "print");
jsonObject.addProperty("error_message", "None");
jsonObject.addProperty("error_code", 1);
conn.send(jsonObject.toString());
} else {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("type", "getWeight");
jsonObject.addProperty("error_code", 0);
jsonObject.addProperty("weight", "0.000kg");
conn.send(jsonObject.toString());
}
} @Override
public void onError(WebSocket conn, Exception ex) {
err.println("WebScoketServerImpl.onError(WebSocket, Exception) called: " + ex);
} @Override
public void onStart() {
out.println("WebScoketServerImpl.onStart() called");
} } public static void main(String[] args) {
Main.WebScoketServerImpl websocketServer = new Main.WebScoketServerImpl(1234);
websocketServer.start();
}
}
Java WebSocket库:https://github.com/TooTallNate/Java-WebSocket的更多相关文章
- GitHub上那些值得一试的JAVA开源库--转
原文地址:http://www.jianshu.com/p/ad40e6dd3789 作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,S ...
- GitHub上那些值得一试的JAVA开源库
作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,Spring,Hibernate等等.除了这些,你可能还会fork或Star一些其他的开 ...
- Github优秀java项目集合(中文版) - 涉及java所有的知识体系
Java资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容 ...
- 一个现代化的JSON库Moshi针对Android和Java
Moshi 是一个现代化的JSON库针对Android和Java.它可以很容易地解析JSON成Java对象: String json = ...; Moshi moshi = new Moshi.Bu ...
- Bean-Query 一个把对象转换为Map的Java工具库
刚开源了一个经过完整測试的Java工具类. 地址例如以下: https://github.com/Jimmy-Shi/bean-query 使用说明例如以下: Bean-query Click Her ...
- GitHub上好的Java项目
1. java-design-patterns(Star:36k)Github地址:https://github.com/iluwatar/java-design-patterns 介绍:设计模式是形 ...
- Java矩阵库—jblas、ujmp、jmatio的相互转化
1)首先使用jmatio(v0.2)从.mat文件读取数据到内存中,并将其转化为二维数组的形式. import com.jmatio.io.MatFileReader; import com.jmat ...
- 2019上半年总结——Github上那些Java面试、学习相关仓库
分享一下最近逛Github看到了一些对于Java面试以及学习有帮助的仓库,这些仓库涉及Java核心知识点整理.Java常见面试题.算法.基础知识点比如网络和操作系统等等. 知识点相关 1.JavaGu ...
- Awesome Java: Github上关于Java相关的工具
Awesome Java 这是Github上关于Java相关的工具,框架等等资源集合. 原文参考: https://github.com/akullpp/awesome-java. @pdai 最全的 ...
随机推荐
- 性能测试之五--webservices接口测试
下面我们进行webservices接口的讲解,包括脚本生成,参数化和关联. 以天气预报的接口为例,接口地址为: http://ws.webxml.com.cn/WebServices/WeatherW ...
- SPOJ GSS2 Can you answer these queries II ——线段树
[题目分析] 线段树,好强! 首先从左往右依次扫描,线段树维护一下f[].f[i]表示从i到当前位置的和的值. 然后询问按照右端点排序,扫到一个位置,就相当于查询区间历史最值. 关于历史最值问题: 标 ...
- BZOJ3130 [Sdoi2013]费用流 【网络流 + 二分】
题目 Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络流方案必须满足:(1)每 ...
- 如何快速下载maven依赖jar包
找到settings.xml文件.在mirrors里面添加下面的代码: <mirror> <id>alimaven</id> <mirrorOf>cen ...
- PHP文件上传设置和处理(单文件)
<!--upload.php内容--><?php /* 修改php.ini的设置 file_uploads必须是On upload_max_filesize 设置上传文件的大小,此值 ...
- JS控制背景音乐 没有界面
建立一个HTML5页面,放置<audio>标签,设置音频文件源,设置循环播放.准备两张图片,分别表示开启和暂停背景音乐两种状态,可以点击. <audio id="music ...
- Java线程的学习_线程池
系统启动一个新线程需要很高的成本,因为它涉及与操作系统交互.在这种情况下,使用线程池可以很好地提高性能,尤其是当程序中需要创建大量生存期很短暂的线程时. 线程池在系统启动时即创建大量空闲的线程,程序将 ...
- 素数判定 2(codevs 1702)
题目描述 Description 一个数,他是素数么? 设他为P满足(P<=263-1) 输入描述 Input Description P 输出描述 Output Description Yes ...
- python结构语句(while,if)
一.基础语法 编码: 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串 #!/usr/bin/env python # -*- coding:utf- ...
- msp430项目编程57
msp430综合项目---扩展项目七57 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结