webSocket 简单实例
2015-11-18 11:50
399 查看
什么是webSocket?webSocket 是解决服务器端和客户端通信实时的技术。ajax也可以通信,但是他做不到实时。在webSocket之前我们想要实时效果,都是要通过轮询的方式,显然这样很浪费资源。webSocket 的强大在于,比起ajax 需要从客户端发起请求,webSocket的 服务端与客户端可以相互实时推送消息。如何使用webSocket?首先你得有一个支持它的浏览器。(IE 是不支持的)创建socket后 ,客户端可以通过 onopen,onmessage,onclose,onerror 这四个时间对socket进行响应。举个栗子:环境:tomcat7或以上。jdk7 或以上 1.webSocketTest.java package instance;import java.io.IOException;import javax.websocket.OnClose;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.Session;import javax.websocket.server.ServerEndpoint;<span style="color:#ff6666;">@ServerEndpoint("/websocket")</span>public class WebSocketTest {@OnMessagepublic void onMessage(String message, Session session)throws IOException, InterruptedException {// Print the client message for testing purposesSystem.out.println("Received: " + message);// Send the first message to the clientsession.getBasicRemote().sendText("This is the first server message");// Send 3 messages to the client every 5 secondsint sentMessages = 0;while(sentMessages < 3){Thread.sleep(5000);session.getBasicRemote().sendText("This is an intermediate server message. Count: "+ sentMessages);sentMessages++;}// Send a final message to the clientsession.getBasicRemote().sendText("This is the last server message");}@OnOpenpublic void onOpen() {System.out.println("Client connected");}@OnClosepublic void onClose() {System.out.println("Connection closed");}}2.page.html<!DOCTYPE html><html><head><title>Testing websockets</title></head><body><div><input type="submit" value="Start" onclick="start()" /></div><div id="messages"></div><script type="text/javascript">var webSocket =new WebSocket('ws://localhost:8080/webScoket/<span style="color:#ff6666;">websocket</span>');webSocket.onerror = function(event) {onError(event)};webSocket.onopen = function(event) {onOpen(event)};webSocket.onmessage = function(event) {onMessage(event)};function onMessage(event) {document.getElementById('messages').innerHTML+= '<br />' + event.data;}function onOpen(event) {document.getElementById('messages').innerHTML= 'Connection established';}function onError(event) {alert(event.data);}function start() {webSocket.send('hello');return false;}</script></body></html>这里要注意:var webSocket =new WebSocket('ws://localhost:8080/webScoket/websocket');
其中:一个是项目名称,一个是注解的服务器名称到此你启动服务器,运行page.html 出现如图,就说明成功了
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 2015-2016网页设计趋势分析 Web Design of Trends
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树