24,923
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<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">
for (i = 1; i <= 250; i++)
{
document.getElementById('messages').innerHTML += i +'<br />';
var webSocket = new WebSocket('ws://localhost:8080/WebSocket/ws/websocket');
webSocket.onerror = function(event) {
document.getElementById('messages').innerHTML += '<br />' + event.data;
};
webSocket.onopen = function(event) {
document.getElementById('messages').innerHTML += 'Connection established <br />';
};
webSocket.onmessage = function(event) {
document.getElementById('messages').innerHTML += '<br />' + event.data;
};
function start() {
webSocket.send('hello');
return false;
}
}
</script>
</body>
</html>
public class webSocketServletDemo extends WebSocketServlet {
private static final long serialVersionUID = 1L;
int a = 0;
@Override
protected StreamInbound createWebSocketInbound(String arg0,HttpServletRequest request) {
++a;
System.out.println(Runtime.getRuntime().maxMemory()/(1024*1024));
long freeMe=(Runtime.getRuntime().freeMemory())/(1024*1024);
System.out.println(freeMe);
System.out.println("request : " +request);
return new webSocketMessage(a+"");
}
}
public class webSocketMessage extends MessageInbound {
private static Vector<MessageInbound> v = new Vector<MessageInbound>();
private String id = "";
public webSocketMessage(String id){
this.id = id;
}
@Override
protected void onOpen(WsOutbound outbound) {
v.add(this);
System.out.println("当前进入用户ID号 : "+id +" 当前共有用户数 : "+v.size());
}
@Override
protected void onClose(int status) {
super.onClose(status);
System.out.println("onClose - 事件被触发 , status : " + status);
}
@Override
protected void onTextMessage(CharBuffer msg) throws IOException {
System.out.println(this.id+"对"+v.get(1)+"说"+msg);
MessageInbound mib = (MessageInbound)v.get(1);
CharBuffer buffer = CharBuffer.wrap(msg);
mib.getWsOutbound().writeTextMessage(buffer);
}
@Override
protected void onBinaryMessage(ByteBuffer arg0) throws IOException {
}
}