jsp+js+socket实现javaweb网页聊天室
来源:互联网 发布:黑产数据交易平台 编辑:程序博客网 时间:2024/06/10 19:25
学一位大牛博客,写到了自己的网站项目中
用到三个文件:IMChat.jsp IMChat.js ChatRoom.java
IMChat.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%String path=request.getContextPath(); String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><script type="text/javascript" src="js/IMChat.js"></script><base href="<%=basePath%>"><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>429专属聊天室</title></head><body><div id="divWelcome"><h1>Welcome to 429 ChatRoom</h1></div><div id="divRoom"><input type="text" id="text"/><input type="button" value="Send" onclick="send()"/><br/><input type="button" value="Close" onclick="closeW()"/>//这里强调!千万不能写成close(),在这卡了一个小时找不到原因,也许是关键字或者保留字什么的原因</div><div id="message"></div></body></html>
IMChat.js 在js文件夹中
var websocket = null;//在servlet设置拦截websocketif("WebSocket" in window){//websocket = new WebSocket("ws://123.206.113.157:8080/FLHK/websocket");//专属服务器地址websocket = new WebSocket("ws://localhost:8080/FLHK/websocket");//连接tomcat地址}else{alert("Not support websocket");//浏览器不支持websocket}websocket.onerror=function(){//发生错误时在信息部分显示setMessageInnerHTML("some error happened!");}websocket.onopen=function(){//聊天室已经打开setMessageInnerHTML("Room is open.");}websocket.onmessage=function(){//发送信息setMessageInnerHTML(event.data);}websocket.onclose=function(){setMessageInnerHTML("close");}window.onbeforeunload=function(){//在关闭聊天室之前就关闭了页面websocket.close();}function closeW(){//关闭连接websocket.close();}function setMessageInnerHTML(innerHTML){//发送信息到ChatRoomdocument.getElementById("message").innerHTML +=innerHTML+"<br/>";}function send(){//从输入框获取后发送var message = document.getElementById("text").value;websocket.send(message);}
ChatRoom.java
package fourkings;import java.io.IOException;import java.util.concurrent.CopyOnWriteArraySet;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.Session;import javax.websocket.server.ServerEndpoint;@ServerEndpoint("/websocket")//此处拦截websocketpublic class ChatRoom {private static int onlineCount=0;private static CopyOnWriteArraySet<ChatRoom> webSocketSet=new CopyOnWriteArraySet<ChatRoom>();private Session session;@OnOpenpublic void OnOpen(Session session){this.session=session;webSocketSet.add(this);++onlineCount;System.out.println("有新的连接加入!当前在线人数为:"+onlineCount);}@OnClosepublic void OnClose(){webSocketSet.remove(this);--onlineCount;System.out.println("有连接关闭!当前在线人数为:"+onlineCount);}@OnMessagepublic void OnMessage(String message,Session session){System.out.println("收到客户端消息:"+message);for(ChatRoom item:webSocketSet){try{item.sendMessage(message);}catch(IOException e){e.printStackTrace();continue;}}}@OnErrorpublic void OnError(Session session,Throwable error){System.out.println("发生错误");error.printStackTrace();}public void sendMessage(String message) throws IOException{System.out.println("send..."+message);this.session.getBasicRemote().sendText(message);}}
源码地址
http://download.csdn.net/detail/damionew/9870580
阅读全文
0 0
- jsp+js+socket实现javaweb网页聊天室
- 实现网页多人聊天室 Socket.IO
- html5 websocket + node.js 实现网页聊天室
- JSP+Nodejs+Socket.IO 聊天室
- Socket实现手机聊天室
- web socket实现聊天室
- Socket实现简单聊天室
- Socket实现聊天室
- WebSocket实现网页聊天室
- node.js+socket.io 实现一个web聊天室
- 使用node.js和socket.io实现多人聊天室
- Node.js+Socket.IO实现的WebSocket群聊天室源码
- Node.js websocket 使用 socket.io库实现实时聊天室
- Node.js websocket 使用 socket.io库实现实时聊天室
- Node.js websocket 使用 socket.io库实现实时聊天室
- Node.js + express + socket 实现在线实时多人聊天室
- Node.Js+Redis+Socket.IO 实现 聊天室或推送消息
- JavaWeb网页聊天室(WebSocket即时通讯)
- script.sh脚本实现功能
- QT笔记(5)——Qt图形视图框架实例
- 接口测试工具postman安装及简单使用
- linux dup dup2刍议
- XUtils框架详解+使用
- jsp+js+socket实现javaweb网页聊天室
- C语言基础之指针
- Hadoop入门案例(六)之二次排序,全排序基础下的二次排序
- Linux16.04安装Matlab2016b详细教程
- ZOJ--1091:Knight Moves(dfs)
- ES6数组新特性
- 【实验五】JPEG解码
- Linux常用命令
- 插件开发中的资源问题分析及填坑处理