多个websocket连接处理--简易聊天…
来源:互联网 发布:java多线程管理 编辑:程序博客网 时间:2024/06/07 13:30
新建web项目,别忘了导入我们的Jar包
新建main.html
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8">
<title>多个websocket通信的实例</title>
<linkrel="stylesheet" type="text/css"href="css/chat.css">
<scriptsrc="js/jquery.js"></script>
<script>
//首先判断浏览器是否支持我们的websocket
if(!window.WebSocket&&window.MozWebSocket)
window.WebSocket=window.MozWebSocket;
if(!window.WebSocket)
alert("此浏览器不支持WebSocket!");
//我们聊天的初始化
functionprepareChat()
{
//首先创建我们的连接
ws=newWebSocket("ws://"+location.host+"/WebSocketChatRoom/ChatDeal");
//连接建立后调用的函数
ws.onopen=function()
{
$("form*").attr("disabled",false);
}
//接收服务器传入的数据时候的处理
ws.onmessage=function(event)
{
//向聊天室当框中追加信息
varchatLog=$("#chatLog");
chatLog[0].innerHTML+="<divclass='chatMsg'>"+event.data+"</div>";
}
}
//用户点击提交按钮的处理
function sendMsg()
{
varmessage=$("#message").val();
//向服务器发送信息
ws.send(message);
$("#message").val("");
}
</script>
</head>
<body>
</body>
</html>
创建servlet
packagecom.hanqing.deal;
importjava.io.IOException;
importjava.util.Set;
importjava.util.concurrent.CopyOnWriteArraySet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importorg.eclipse.jetty.websocket.WebSocket;
importorg.eclipse.jetty.websocket.WebSocketServlet;
public class ChatDeal extendsWebSocketServlet
{
public finalSet<ChatWebSocket> users=newCopyOnWriteArraySet<ChatWebSocket>();
public WebSocketdoWebSocketConnect(HttpServletRequest arg0, Stringarg1)
{
System.out.println(users.size());
// TODO Auto-generated methodstub
return newChatWebSocket(users);
}
//进行处理websocket的类
public class ChatWebSocketimplements WebSocket.OnTextMessage
{
//连接对象
private Connectionconnection;
//所有用户的集合
privateSet<ChatWebSocket>users;
publicChatWebSocket()
{
}
publicChatWebSocket(Set<ChatWebSocket>users)
{
this.users=users;
}
public void onClose(int arg0,String arg1) {
users.remove(this);
}
public void onOpen(Connectionconnection) {
this.connection=connection;
users.add(this);
}
//接收从客户端而来的数据时候被调用
public void onMessage(Stringdata) {
//System.out.println(data);
//对所有用户送出信息
for(ChatWebSocketuser:users)
{
try {
user.connection.sendMessage(data);
} catch (IOException e){
e.printStackTrace();
}
}
}
}
}
0 0
- 多个websocket连接处理--简易聊天…
- java WebSocket 简易聊天消息推送
- java WebSocket 简易聊天消息推送
- java WebSocket 简易聊天消息推送
- java WebSocket 简易聊天消息推送
- Spring -websocket实现简易在线聊天
- java WebSocket 简易聊天消息推送
- 简易Java web在线聊天-websocket
- Java WebSocket构建简易聊天web程序
- 伪长连接 简易 聊天
- WebSocket聊天
- nodejs--websocket简易代码实现局域网多个客户端进行通信
- REUSEADDR,服务器连接多个客户端,点对点聊天程序
- 简易聊天
- WebSocket ——多人实时聊天
- 基于webSocket的多人聊天系统
- WebSocket实现多人实时聊天
- Java+WebSocket实现一对一对多即时聊天
- HTML 5 <header> 标签
- HTML 5 <hgroup> 标签
- HTML 5 <button> 标签
- html5开发之websocket乱码
- Java关键字final、static使用总结
- 多个websocket连接处理--简易聊天…
- 工具之Git篇一: git克隆远程数据库,将克隆文件转为myeclipse项目或Intellij Idea项目
- prompt
- Java中for循环格式
- js 页面刷新location.reload…
- Html5开发之Web Workers概要
- HTML5开发之web workers--简…
- Html5之web workers后台计算…
- importScripts的应用