HTML5体验:基于Jetty8的WebSocket聊天Demo

本文介绍了一个基于Jetty8的WebSocket聊天Demo,包括下载Jetty8、创建Web工程、配置WebSocketServlet和编写Web页面的步骤。示例代码展示了WebSocketServlet的实现和WebSocketChatServlet的工作流程,帮助理解如何在实际应用中使用WebSocket进行实时通信。

 

在看WebSocket,相关的一些服务器的支持情况大概是:

Tomcat目前还不支持WebSocket,

Jetty7开始支持WebSocket,

JBoss的Netty需要插件后可以支持WebSocket,

Node.js可以配合node-websocket-server一起使用来运行WebSocket ( https://github.com/miksago/node-websocket-server)

 

 

这里参考Jetty8里面的原有的Demo,修改整理出来一份能够独立运行的WebSocket示例。

需要做的工作大概如下

 

1. 下载Jetty8

版本: jetty-hightide-8.0.0.M2  ,
地址: http://dist.codehaus.org/jetty/jetty-hightide-8.0.0.M2/

 

2. Eclipse创建一个动态的Web工程,把Jetty8的Run

 

3. 编写 WebSocketServlet代码 WebSocketChatServlet.java

 

4. 在web.xml中配置servlet

 

5. 编写Web页面 ws/index.html

 

6. 导出war文件 Jetty8WebSocket.war, 放到jetty的webapps目录下

 

7. 启动jetty8

   jetty-hightide-8.0.0.M2 admin$ java -jar start.jar

 

8. 打开Chrome浏览器,我用的是Chrome11

浏览器中输入http://localhost:8080/Jetty8WebSocket/ws/

可以聊天了。

 

效果是这样纸滴:

 

 

下面直接贴代码

 

File:  WebSocketChatServlet.java

==============================================================

package com.acme;

import java.io.IOException;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.eclipse.jetty.io.Connection;
import org.eclipse.jetty.util.TypeUtil;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.websocket.WebSocket;
import org.eclipse.jetty.websocket.WebSocket.Outbound;
import org.eclipse.jetty.websocket.WebSocketServlet;

 
public class WebSocketChatServlet extends WebSocketServlet
{
    private final Set<ChatWebSocket> _members = new CopyOnWriteArraySet<ChatWebSocket>();
   
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws javax.servlet.ServletException ,IOException
    {
        getServletContext().getNamedDispatcher("default").forward(request,response);
    };
   
    public WebSocket doWebSocketConnect(HttpServletRequest request, String protocol)
    {
        return new ChatWebSocket();
    }
   
   
    class ChatWebSocket implements WebSocket
    {
 

内容概要:本文介绍了一个针对电力系统连锁故障传播路径的N-k多阶段双层优化及故障场景筛选模型,该模型基于混合整数线性规划(MILP)方法构建,旨在全面评估电力系统在遭受多重故障时的脆弱性与恢复能力。通过引入故障传播路径的概念,模型能够动态模拟故障在电网中的逐级扩散过程,并结合多阶段优化策略,实现对关键故障场景的有效识别与优先排序。整个框架不仅考虑了初始故障元件的选取,还涵盖了后续因潮流转移引发的级联跳闸行为,从而提升了风险评估的准确性与时效性。该研究已在Matlab平台上完成代码实现,具备良好的可复现性和工程应用价值,适用于提升现代电网的安全防御水平。; 适合人群:电力系统、能源安全及相关领域的科研人员、高校研究生以及从事电网规划与运行管理的工程技术人员。; 使用场景及目标:①用于电力系统安全评估中识别最危险的N-k故障组合;②支撑电网应急预案制定与薄弱环节改造;③作为学术研究中关于级联故障建模与优化求解的教学与验证工具;④服务于智能电网背景下抵御蓄意攻击或极端事件的风险防控决策。; 阅读建议:建议读者结合Matlab代码深入理解模型的数学 formulation 与求解流程,重点关注目标函数设计、约束条件构建及双层优化结构的实现逻辑,同时可通过调整系统参数和故障设定进行仿真对比分析,以掌握不同因素对连锁故障演化的影响规律。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值