Js WebScoket与Java WebSocket的通信
来源:互联网 发布:iapp源码大全 编辑:程序博客网 时间:2024/06/01 10:35
不喜欢说废话,直接上代码←← 在myeclise里面新建一个项目,项目名命名为websocke,请使用java ee7.0或以上web环境。 1,在WebRoot下新建一个demo.html,其内容如下:
<!DOCTYPE html><html> <head> <style> #content{width:600px;height:200px;} </style> <meta charset="utf-8"/> </head> <body id="body"> <textarea id="content" rows="40" cols="500"></textarea> <div class="btn"> <input type="button" value="清空" onclick="reset()"/> <input type="button" value="发送" onclick="send()"> </div> <script type="text/javascript"> var socket = new WebSocket('ws://127.0.0.1:80/websocket/ws'); //创建Socket socket.onopen = function(event) { //向服务器发送数据 //socket.send('哈哈哈哈'); //接收数据事件 socket.onmessage = function(event) { body.innerHTML+="<br/>对方:"+event.data; }; // socket关闭事件 socket.onclose = function(event) { body.innerHTML+="<br/>系统:已和服务器断开连接!!!"; }; //关闭socket //socket.close() }; //----------- var body=document.getElementById("body"); function send(){ var msg=document.getElementById("content").value;//获取输入框内容 socket.send(msg);//发送消息 reset();//清空输入框 body.innerHTML+="<br/>我:"+msg; } function reset(){ document.getElementById("content").value=""; } </script> </body></html>
js代码已经包含在这个html中,其中已经展示了js WebSocket的各种基本用法;
2,在src下新建一个action包,在action包里面新建一个WSServer类,其内容如下:
package action;import java.io.IOException;import javax.websocket.CloseReason;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.Session;import javax.websocket.server.PathParam;import javax.websocket.server.ServerEndpoint;//@ServerEndpoint注解中的内容是用户客户端websocket的连接url,例如ws://127.0.0.1:80/websocket/ws,//结构形式为“ws://ip:端口/项目名/指定的url”@ServerEndpoint("/ws")public class WSServer { private Session session; //连接打开时执行 @OnOpen public void onOpen(Session session) { this.session=session; System.out.println("一个客户端连接进来了 ... 它的sessionid是:" + session.getId()); } //收到消息时执行 @OnMessage public void onMessage(String message, Session session) { System.out.println(session.getId()+"客户端发送的消息是:"+message); try{ this.sendMessage(message);//消息发回给客户端 }catch(Exception e){ e.printStackTrace(); } //return currentUser + ":" + message;如果有返回值,则客户端发送消息后会收到这个返回值 } //连接关闭时执行 @OnClose public void onClose(Session session, CloseReason closeReason) { System.out.println("一个客户端关闭了,它的sessionid是:" + session.getId()); } //连接错误时执行 @OnError public void onError(Throwable t) { t.printStackTrace(); } //自定义的方法,用于发送消息 public void sendMessage(String message) throws IOException{ this.session.getBasicRemote().sendText(message); //this.session.getAsyncRemote().sendText(message); }}
这是java WebSocket建立服务端的方式,主要是通过注解去设定各种事件,每当有一个客户端连接进来,就会产生一个WSServer的对象实例,如果要用于多客户端的通信(如群聊),那么在@onOpen事件中应该收集好连接进来的客户端产生的实例以便于消息的转发。
部署这个简单的项目到tomcat,然后开启tomcat服务器,通过浏览器访问demo.html就可以感受WebSocket的通信了。注意,楼主代码里面tomcat使用的是80端口,不是80端口的读者请自行修改代码。
代码有不懂的读者可以留言评论,但不一定会收到回复←←。
阅读全文
0 0
- Js WebScoket与Java WebSocket的通信
- WebScoket 规范 + WebSocket 协议
- WebScoket 规范 + WebSocket 协议
- [Python]通过websocket与js客户端通信
- websocket 与 tomcat websocket通信
- 基于WebSocket的Android与服务端通信
- Python通过websocket与js客户端通信示例
- java与js通信
- Android Java与JS的通信
- WebScoket通信简单小例子
- java webscoket聊天室
- WebSocket+node.js创建即时通信的Web聊天服务器
- websocket与node.js的完美结合
- websocket与node.js的完美结合
- websocket与node.js的完美结合
- webscoket 的定义
- Java与Js通信总结
- java与node.js通信
- HBase quota机制源码阅读
- 字符串消除 【string】
- 数据库压缩技术探索
- 随手记java开发实习生面试
- java 对象传入到函数原对象不改变 值传递 引用传递
- Js WebScoket与Java WebSocket的通信
- Java之static知识点和使用演示
- Android 是否禁止 ViewPager左右滑动
- 《高效能人事的七个习惯》
- 利用URL Scheme打开指定应用的通知
- 【安卓学习】2.Intent的学习
- 数据结构封装之《StaticList静态链表》
- 204.m1-ViewHolder的复用
- Android控件