Java WebSocketClient 做本地数据接收处理服务程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java WebSocketClient 做本地数据接收处理服务程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3423字,纯文字阅读大概需要5分钟。
内容图文
![Java WebSocketClient 做本地数据接收处理服务程序](/upload/InfoBanner/zyjiaocheng/729/46c860c2f06a4b63be73a06e5af0465a.jpg)
Client是基本类
WebSocketClientTest是主方法入口
maven 地址,可能还需要其他的包等会截图
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.3.0</version>
</dependency>
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.ByteBuffer;
import java.nio.channels.NotYetConnectedException;
import java.util.Map;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft;
import org.java_websocket.handshake.ServerHandshake;
import net.sf.json.JSONObject;
public class Client extends WebSocketClient {
public Client(URI serverUri, Draft protocolDraft, Map<String, String> httpHeaders, int connectTimeout) {
super(serverUri, protocolDraft, httpHeaders, connectTimeout);
}
@Override
public void onOpen(ServerHandshake arg0) {
System.out.println("打开链接");
WebSocketClientTest.heartbeat=1;
}
@Override
public void onMessage(String arg0) {
if(arg0!=null){
System.out.println("收到消息" + arg0);
//一般在这执行你需要的业务,通常返回JSON串然后解析做其他操作
}
}
@Override
public void one rror(Exception arg0) {
System.out.println("发生错误已关闭,正在重连");
WebSocketClientTest.heartbeat=0;
}
@Override
public void onClose(int arg0, String arg1, boolean arg2) {
System.out.println("链接已关闭,正在重连");
WebSocketClientTest.heartbeat=0;
}
@Override
public void onMessage(ByteBuffer bytes) {
try {
System.out.println(new String(bytes.array(), "utf-8"));
} catch (UnsupportedEncodingException e) {
System.out.println("出现异常");
WebSocketClientTest.heartbeat=0;
}
}
}
import java.net.URI;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import org.java_websocket.WebSocket.READYSTATE;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft_17;
public class WebSocketClientTest {
public static WebSocketClient client;
public static int heartbeat = 0;// 0代表链接断开或者异常 1代表链接中.2代表正在连接
public static String url="";//请求的路径地址包括端口
public static void main(String[] args) throws Exception {
Timer timer = new Timer();
Task task = new Task();
timer.schedule(task, new Date(), 5000);
}
public static void connect() throws Exception {
client = new Client(new URI(url), new Draft_17(), null, 0);
client.connect();
int count = 0;
heartbeat=2;
while (!client.getReadyState().equals(READYSTATE.OPEN)) {
count++;
if (count % 1000000000 == 0) {
System.out.println("还没有打开");
}
}
client.send("发送给服务器端的信息");
}
public static void reconnect() throws Exception {
Thread.currentThread().sleep(15000);// 毫秒
System.out.println("再次启动尝试连接");
connect();
}
public static void send(byte[] bytes) {
client.send(bytes);
}
}
import java.util.TimerTask;
class Task extends TimerTask {
@Override
public void run() {
try {
System.out.println("心跳检测:"+((WebSocketClientTest2.heartbeat == 1)?"连接中":"未连接中"));
if (WebSocketClientTest2.heartbeat ==0 ) {
WebSocketClientTest2.connect();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
这里只贴webSocket的主要代码,其他关于业务逻辑的,JDBC的就不在贴上面了
需要注意下的是关于用Eclipse打jar包,
我用的是 Eclipse Java EE IDE for Web Developers.
Version: Mars Release (4.5.0)
按照网上装fatjar死活装不上,原因居然是用错包了,这里特此吐槽下需要用net.sf.fjep.fatjar_0.0.32.jar
0.0.32的版本亲测可用,网上一般都是0.0.31的是可能装了没反应
下面是关于安装和使用的链接
https://www.cnblogs.com/wbyp/p/6222182.html
打完jar包后就可以 cmd java -jar xxxx/jar去运行了
内容总结
以上是互联网集市为您收集整理的Java WebSocketClient 做本地数据接收处理服务程序全部内容,希望文章能够帮你解决Java WebSocketClient 做本地数据接收处理服务程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。