使用Jetty的WebSocket使用方式

[b]首先,需要服务器Jetty. 因为现在Tomcat并不支持Websocket
解压好服务器Jetty后,在命令行(cmd)(Jetty当前目录)中运行Java –jar start.jar既可[/b]

[b][color=red]编写服务器代码:[/color][/b]
创建类:WebSearchServlet.java
public class WebSearchServlet extends WebSocketServlet{

private static final long serialVersionUID = 5136484809757218548L;

public WebSocket doWebSocketConnect(HttpServletRequest request, String arg1) {
return new SearchServlet();
}
}

创建类:SearchServlet.java

public class SearchServlet implements WebSocket{

public SearchServlet(){
}
public void onClose(int arg0, String arg1) {
System.out.println("onClose");
}

public void onOpen(final Connection conn) {
new Thread() {
@Override
public void run() {
try {
while (true) {
sleep(1000);
conn.sendMessage("Count");
}
} catch (final Exception e) {
e.printStackTrace();
}
}
}.start();
}
}


Web.xml代码
<servlet>
<servlet-name>WebSocket</servlet-name>
<servlet-class>org.search.servlet.WebSearchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WebSocket</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


HTML代码:
<script>
function websocket(x,y) {
var ws = new WebSocket("ws://16.187.87.35:8080/html5service/comet.do?x="+x+"&y="+y);
ws.onmessage = function(evt) {
console.log("evt.data:"+evt.data);
};
ws.onclose = function() {
};
ws.onopen = function() {
ws.send(x+","+y);
};
};
$(function(){
Websocket("1","2");
});
</script>
Jetty 是一个流行的 Java Web 服务器和 Servlet 容器,它也提供了对 WebSocket 的支持。下面是一个简单的示例,展示了如何在 Jetty使用 WebSocket: 1. 首先,确保你已经在项目中添加了 Jetty 的依赖。可以通过 Maven 或者其他构建工具来添加依赖。这里以 Maven 为例,在 pom.xml 文件中添加以下代码: ```xml <dependencies> <dependency> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-server</artifactId> <version>xxx</version> </dependency> </dependencies> ``` 请将 `xxx` 替换为你所需的 Jetty 版本号。 2. 创建一个 WebSocketHandler 类来处理 WebSocket 请求。这个类需要继承自 Jetty 的 `WebSocketHandler` 类,并实现 `onWebSocketConnect`、`onWebSocketText` 和 `onWebSocketClose` 方法。例如: ```java import org.eclipse.jetty.websocket.api.*; import org.eclipse.jetty.websocket.api.annotations.*; import org.eclipse.jetty.websocket.server.*; @WebSocket public class MyWebSocketHandler extends WebSocketHandler { @Override public void configure(WebSocketServletFactory factory) { factory.register(MyWebSocketHandler.class); } @OnWebSocketConnect public void onConnect(Session session) { // 连接建立时触发 } @OnWebSocketText public void onText(Session session, String message) { // 接收到文本消息时触发 } @OnWebSocketClose public void onClose(Session session, int statusCode, String reason) { // 连接关闭时触发 } } ``` 3. 创建一个 Jetty 服务器并配置 WebSocketHandler。例如: ```java import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.HandlerList; public class WebSocketServer { public static void main(String[] args) throws Exception { Server server = new Server(8080); WebSocketHandler webSocketHandler = new MyWebSocketHandler(); HandlerList handlers = new HandlerList(); handlers.addHandler(webSocketHandler); server.setHandler(handlers); server.start(); server.join(); } } ``` 4. 启动服务器,你的 WebSocket 服务就可以在 `ws://localhost:8080/` 上监听连接请求并处理消息了。 这只是一个简单的示例,你还可以根据自己的需求进行更复杂的定制和扩展。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值