基于tomcat7的websocket
2015-12-02 09:15
411 查看
后台
import java.io.BufferedReader; /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.io.IOException; import java.io.InputStreamReader; import java.nio.ByteBuffer; import javax.websocket.OnMessage; import javax.websocket.PongMessage; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/websocket/echoAnnotation") public class EchoAnnotation { @OnMessage public void echoTextMessage(Session session, String msg, boolean last) throws Exception { try { if (session.isOpen()) { Runtime rt = Runtime.getRuntime(); String ip = msg; try { Process p = rt.exec("ping " + ip); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); int count=0; while (true) { count++; String strRead; strRead = br.readLine(); if (strRead == null) break; System.out.println(strRead); session.getBasicRemote().sendText(strRead+count, last); } } catch (Exception e) { // TODO: handle exception } } } catch (Exception e) { try { session.close(); } catch (IOException e1) { // Ignore } } } @OnMessage public void echoBinaryMessage(Session session, ByteBuffer bb, boolean last) { try { if (session.isOpen()) { session.getBasicRemote().sendBinary(bb, last); } } catch (IOException e) { try { session.close(); } catch (IOException e1) { // Ignore } } } /** * Process a received pong. This is a NO-OP. * * @param pm * Ignored. */ @OnMessage public void echoPongMessage(PongMessage pm) { // NO-OP } }
前台:
<head> <title>Test</title> <script src="http://cdn.sockjs.org/sockjs-0.3.min.js"></script> <script type="text/javascript"> var ws; //连接 function connect(){ ws = new WebSocket("ws://localhost:8080/websocketTest/websocket/echoAnnotation"); ws.onopen = function () { console.info('已连接!'); }; ws.onmessage = function (event) { receveMes(event); }; ws.onclose = function (event) { console.info('已关闭!'); }; } //断开连接 function disConnect(){ ws.close(); ws = null; } //发送信息 function sendMes(message){ ws.send(message); } //接受信息 function receveMes(event){ console.info('event.data:'+event.data); } </script> </head> <body> <div> <input type="button" value="connect" onclick="connect()"><br><br> <input type="text" id="message"> <input type="button" value="发送" onclick="sendMes('sometH')"><br><br> <input type="button" value="disconect" onclick="disConnect()"> </div> </body> </html>
相关文章推荐
- eclipse下使用tomcat启动maven项目
- IntelliJ IDEA 部署Tomcat及创建一个web工程
- Linux下Tomcat的安装配置
- Tomcat安装配置
- 1、tomcat目录及端口规划实践
- tomcat部署后在web-inf下没有lib文件夹解决方案
- 双击启动tomcat中的startup.bat闪退原因及解决方法
- JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)
- 深入分析JavaWeb Item3 -- Tomcat服务器学习和使用2
- 深入分析JavaWeb Item2 -- Tomcat服务器学习和使用
- Tomcat.localhost(Problem)
- Tomcat+Solr构建企业级搜索引擎
- Tomcat启动报Unsupported major.minor version 51.0
- Tomcat启动时卡在“INFO: Deploying web application directory ”
- Linux下Tomcat的启动、关闭、杀死进程
- Tomcat中Java垃圾收集调优
- Tomcat中JVM内存溢出及合理配置
- tomcat启动多实例
- tomcat7点击\bin\tomcat7.exe一闪而过,点击tomcat7w.exe提示未安装服务
- 使用awstats监控Tomcat日志