通过java发送websocket协议
来源:互联网 发布:极有家 知乎 编辑:程序博客网 时间:2024/06/06 12:30
前段时间完成公司某个软件的自动化发现协议是websocket
特在下面贴出通过java来模拟websocket的请求端
jar地址:http://download.csdn.net/download/zy841958835/10039797
package service.util;import java.net.URI;import java.nio.ByteBuffer;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.SSLContext;import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;import org.apache.http.conn.ssl.SSLContextBuilder;import org.apache.http.conn.ssl.TrustStrategy;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import org.java_websocket.WebSocket.READYSTATE;import org.java_websocket.client.WebSocketClient;import org.java_websocket.drafts.Draft_6455;import org.java_websocket.handshake.ServerHandshake;import org.json.JSONObject;/** * @author author cloud_pluie:* @version CreateDate 2017年9月25日 */public class WebSocket {public static WebSocketClient client;public static void main(String[] args) throws Exception {http();URI uri = new URI("wss://xxxx/login?token="+token.replaceAll("\\s+", "%0A")); client = new WebSocketClient(uri,new Draft_6455(),null,30000) { @Override public void onOpen(ServerHandshake arg0) { try{ Thread.sleep(2000); System.out.println("wait 2s"); }catch(Exception e){ } System.out.println(arg0.getHttpStatus()); System.out.println("打开链接"); } @Override public void onMessage(String arg0) { System.out.println("收到消息"+arg0); } @Override public void onError(Exception arg0) { arg0.printStackTrace(); System.out.println("发生错误已关闭"); } @Override public void onClose(int arg0, String arg1, boolean arg2) { super.close(); System.out.println(arg1); System.out.println("链接已关闭"); } @Override public void onMessage(ByteBuffer bytes) { try { System.out.println(new String(bytes.array(),"utf-8")); } catch (Exception e) { e.printStackTrace(); } } }; System.out.println("connecting..."); client.connect(); try{ Thread.sleep(2000); System.out.println("wait 2s"); }catch(Exception e){ } while(!client.getReadyState().equals(READYSTATE.OPEN)){ System.out.println("还没有打开"); } System.out.println("current status : "+client.getReadyState());// send("hello world".getBytes("utf-8"));// client.send("hello world");}public static void send(byte[] bytes){ client.send(bytes);}public static void http(){ /**gettoken*/}static CloseableHttpClient httpClient = null;static String token;}
两个地方需要注意
1.URL需要注意格式出现空格汉字特殊字符时需要转义
2.client.connect();是异步的
阅读全文
0 0
- 通过java发送websocket协议
- Java发送webSocket请求
- Java中通过UDP协议发送和接受数据
- Java中通过UDP协议发送和接受数据
- 通过Java发送邮件
- websocket协议
- WebSocket协议
- WebSocket协议
- Websocket协议
- Websocket协议
- webSocket协议
- WebSocket协议
- WebSocket协议
- Websocket协议
- websocket协议
- WebSocket协议
- WebSocket 协议
- webSocket协议
- 上海美食小吃有哪些
- SharedPreferences工具类
- ubuntu系统更改apt软件包源
- 阿里云CentOS安装Git
- freemarker
- 通过java发送websocket协议
- HTML表单input控件2
- 针对初学者的《python 核心编程第二章习题答案》——半详解
- 关于服务器集群的session处理方式的总结
- jsb cocos2dx 绑定过程中遇到的问题
- nodejs -- basic认证
- vs2013 正在等待后台操作完成。此对话框将在操作完成后关闭...
- 算法储备之Dijkstra算法求单源点最短路径
- 输入一个Email地址,然后使用正则表达式验证该Email地址是否正确。