J2EE7已经发布了 参照 http://www.iteye.com/news/27980
j2ee7支持websocket协议,eclipse4.3 netbeans 7.3.1 这些ide 都已经开始支持.
但文档相对较少,下面利用netbeans 快速搭建一个多人聊天的功能
到https://netbeans.org/downloads/ 迅速下载一个
选择ALL的安装包 224M 下载完后快速安装。
新建一个j2ee项目
<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="图片_x0020_1" o:spid="_x0000_i1027" type="#_x0000_t75" style='width:415.5pt;height:227.25pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\Users\ASUS\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
web页添加chat.hml 建立和websocket 连接
<div id="messages"></div>
<script type="text/javascript">
var webSocket =
new WebSocket('ws://localhost:8080/EnterpriseApplication1-war/chat');
webSocket.onerror = function(event) {
onError(event)
};
webSocket.onopen = function(event) {
onOpen(event)
};
webSocket.onmessage = function(event) {
onMessage(event)
};
function onMessage(event) {
document.getElementById('messages').innerHTML += '<br />' + event.data;
}
function onOpen(event) {
document.getElementById('messages').innerHTML = '已连接到服务器......<br/>';
}
function onError(event) {
alert(event.data);
}
function start() {
webSocket.send('hello');
return false;
}
function send(){
var talk = $('talk');
var nike = $('nike');
webSocket.send('<strong style="color:red">'+nike.value+':</strong>'+talk.value);
}
function $(id){
return document.getElementById(id);
}
</script>
服务端代码
@ServerEndpoint("/chat")
public class WebSocketTest {
@OnMessage
public void onMessage(String message, Session session)
throws IOException, InterruptedException {
// Print the client message for testing purposes
System.out.println("Received: " + message);
//获取所有存活会话,并相应消息
Set<Session> set=session.getOpenSessions();
Iterator<Session> it=set.iterator();
//迭代遍历
while(it.hasNext()){
Session everySession=it.next();
if(everySession.isOpen()){
everySession.getBasicRemote().sendText(message);
}
}
在项目上点击运行,运行netbeans自带的glassfish 4
多开继续页面 访问路径http://localhost:8080/EnterpriseApplication1-war/chat.html
可以看到如下效果
<!--[if gte vml 1]><v:shape id="图片_x0020_14" o:spid="_x0000_i1026" type="#_x0000_t75" style='width:405.75pt; height:491.25pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\Users\ASUS\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
<!--[if gte vml 1]><v:shape id="图片_x0020_17" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:370.5pt; height:396.75pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\Users\ASUS\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
附源码:
相关推荐
在本项目"webChat"中,我们将探讨如何利用WebSocket技术来构建一个支持多人聊天的网页应用。 一、WebSocket简介 WebSocket是HTML5新增的一项技术,它允许浏览器和服务器进行全双工通信,即双方可以同时发送数据,而...
在本文中,我们将深入探讨如何使用Java和Spring MVC框架实现一个基于WebSocket的多人聊天室。WebSocket是一种在客户端和服务器之间建立持久连接的协议,它允许实时双向通信,非常适合用于在线聊天应用。 首先,我们...
在本文中,我们将探讨如何构建一个基于Vue.js和WebSocket的多人在线聊天室。Vue.js是一个流行的前端JavaScript框架,用于构建用户界面,而WebSocket则是一种在客户端和服务器之间提供全双工、低延迟通信的协议。结合...
为了实现多人聊天功能,我们需要一个数据存储方案。在这个项目中,使用了MySQL数据库来存储用户信息和聊天记录。MySQL是流行的开源关系型数据库,支持事务处理,具有高可用性和高性能,非常适合存储结构化数据。 在...
在本文中,我们将深入探讨如何基于WebSocket构建一个支持多人多聊天室的服务器,以及如何利用OpenResty这一强大的Web服务器平台来实现这一目标。 首先,WebSocket API允许Web应用程序在单个TCP连接上进行全双工通信...
- 在服务器端,为了实现多人聊天功能,我们需要维护一个客户端连接的会话列表。每当有新的连接建立或关闭,都需要更新这个列表。 - 当接收到一条新消息时,遍历会话列表,通过`Session.getBasicRemote().sendText...
`onMessage`方法用于接收客户端发送的消息,并可以调用`Session`对象的`getBasicRemote()`方法向所有连接的客户端广播消息,实现多人聊天功能。 客户端的实现通常通过JavaScript进行,使用WebSocket对象与服务器...
本文将详细讲解如何在Python的FastAPI框架中利用WebSocket技术实现一个多人聊天室。 FastAPI是一个现代化的、高性能的web框架,用于构建API。它基于TypeHinting,提供自动化的API文档和易于使用的接口。WebSocket...
Java基于WebSocket实现的视频聊天是一种实时通信(Real-Time Communication, RTC)的应用,它利用了WebSocket这一先进的网络协议来实现高效、双向的数据传输。WebSocket协议是HTML5的一个重要特性,为客户端与服务器...
在本文中,我们将深入探讨如何使用Vue2和WebSocket技术构建一个简单的多人聊天应用程序。这个应用将涵盖服务端和前端的实现,旨在展示WebSocket在实时通信中的应用以及Vue2框架在构建用户界面时的优势。 首先,让...
本项目采用Java技术,利用WebSocket协议来构建一个多人聊天室,实现了用户间的实时消息传递,同时也支持一对一的私聊功能。WebSocket是一种在客户端和服务器之间建立长连接的协议,相较于传统的HTTP请求-响应模式,...
这个项目以“多人聊天_html5_nodejs_CSS3_websocket_”为标题,显然它利用了现代Web技术来实现这样一个功能。让我们详细探讨一下这个项目所涉及的关键知识点。 首先,HTML5(超文本标记语言第五版)是构建Web页面的...
在“stomp实现多人聊天和单人聊天”的场景中,我们需要理解以下几个关键知识点: 1. **WebSocket**:WebSocket是HTML5引入的一种在单个TCP连接上进行全双工通信的协议。传统的HTTP协议是请求-响应模式,而WebSocket...
在本场景中,我们将讨论如何利用ActiveMQ和Ajax技术来实现一个多人聊天室的功能。 首先,了解ActiveMQ的基本概念。ActiveMQ作为消息代理,它接收、存储并转发消息给订阅者。生产者发送消息到ActiveMQ,而消费者则从...
本项目正是基于WebRTC技术,实现了多人视频会议的功能,为用户提供了一个高效、便捷的在线交流平台。 【描述】:“基于WebRTC开发的多人视频会议,信令服务器使用Java WebSocket,采用SpringBoot架构。用户可以通过...
总结来说,"基于WebSocket的简单多人聊天"项目利用了WebSocket协议的实时通信特性,结合Java EE的WebSocket API,实现了服务器与多个客户端之间的实时双向通信,构建了一个简单的多人聊天平台。在这个过程中,开发者...
实现在线聊天功能** 在线聊天的核心是实现消息的发送和接收。服务器端需要维护一个连接池,保存所有在线用户的WebSocket连接。当有新的消息发送时,遍历连接池,将消息推送给所有在线用户。 ```csharp private ...
【多人聊天室(asp.net)】是一个基于ASP.NET技术实现的在线实时交流平台,它能够支持多用户同时在线对话,提供了基本的聊天功能,让用户可以在网络上进行即时沟通。麻雀虽小,五脏俱全,意味着这个聊天室虽然规模不大...