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>
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
}
};
}
}