首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Tomcat7.0.42对WebSocket的支持,该怎么解决

2013-08-10 
Tomcat7.0.42对WebSocket的支持看了网上websocket的例子,为什么一直调不通呢.index.jsp%@ page language

Tomcat7.0.42对WebSocket的支持
看了网上websocket的例子,为什么一直调不通呢.
index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Index</title>

<script type="text/javascript">  
var ws = null;  
function startWebSocket() {  
    if ('WebSocket' in window)  
        ws = new WebSocket('ws://109.123.112.65:8080/TestWeb/Test');  
    else if ('MozWebSocket' in window)  
        ws = new MozWebSocket("ws://109.123.112.65:8080/TestWeb/Test");  
    else  
        alert("not support");  


    ws.onmessage = function(evt) {  
        alert(evt.data);  
    };  

    ws.onclose = function(evt) {  
        alert("close");  
    };  

    ws.onopen = function(evt) {  
        alert("open");  
    };  
}  

function sendMsg() {  
    ws.send(document.getElementById('writeMsg').value);  
}  
</script>
</head>
<body onload="startWebSocket();">
<input type="text" id="writeMsg"></input>
<input type="button" value="send" onclick="sendMsg()"></input>
</body>
</html>


Test.java源码

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;

import javax.servlet.http.HttpServletRequest;

import org.apache.catalina.websocket.MessageInbound;
import org.apache.catalina.websocket.StreamInbound;
import org.apache.catalina.websocket.WebSocketServlet;
import org.apache.catalina.websocket.WsOutbound;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * Servlet implementation class Test
 */


public class Test extends WebSocketServlet {

    private static final long serialVersionUID = 1L;
    private  Log log = LogFactory.getLog(getClass());

    @Override
    protected StreamInbound createWebSocketInbound(String arg0, HttpServletRequest arg1) {
     
        log.info("======================");
       return new MessageInbound() {
        
        @Override
        protected void onTextMessage(CharBuffer charBuffer) throws IOException {
            
            log.info("get message from client:"+charBuffer);
            WsOutbound out=this.getWsOutbound();
            CharBuffer buffer=CharBuffer.wrap("I'am server,I recevied yourmessage:"+charBuffer);
            out.writeTextMessage(buffer);
            out.flush();

            
        }
        
        @Override
        protected void onBinaryMessage(ByteBuffer arg0) throws IOException {
            // TODO Auto-generated method stub
            
        }
    };
    }


}




为什么运行没有反应呢,直接alert("close");  
求解答
------解决方案--------------------


LZ浏览器是 ?
[解决办法]
类前面加上注解@WebServlet("/Test")  
[解决办法]
https://github.com/1d7500/trunk/tree/master/example/websocketexample
刚上传的例子 LZ请趁热

热点排行