美文网首页
在Jetty中使用websocket

在Jetty中使用websocket

作者: Titan框架 | 来源:发表于2018-09-25 14:54 被阅读0次

1.序言

在工作中,我们有时候需要使用能与前端实时通信传输以通信,这种技术就是由Socket实现的,而Socket又有短连接和长连接之分,长连接技术就是我们今天要介绍的websocket。

2.websocket服务启动设置

首先创建一个基于HTTP协议的 jetty Servlet server,Jetty通过WebSocketServlet和servlet桥接的使用,提供了将WebSocket端点到Servlet路径的对应。

内在地,Jetty管理HTTP升级到WebSocket,并且从一个HTTP连接移植到一个WebSocket连接。

这只有当运行在Jetty容器内部时才工作。

接下来,创建一个可用的webSocket对象

每一个WebApp都对应相应一个context,那么也就对应一个contextHandler,当servlet容器收到外部的http请求之后,会根据其请求的path信息来找到相应的webapplication来处理,也就是要找到对应的contextHandler来处理 ,这里也就知道了contextHandler的最重要的作用,那就是指定不同WebApp的路径,并将属于当前web的http请求交由内部对应的servlet来处理。

启动该server,并join使线程启动

join方法实际上是调用了jetty中的线程池,并堵塞当前线程使得server能够优先于当前线程启动,这样保证了server一定能够启动(如果没有join,那么在程序轻量级的情况下也能够正常运行,这是得益于Jetty启动速度非常快的原因,当application比较繁杂的时候,必须使用join函数保证server能够优先启动。)

到这里为止,所有的启动设置已经完成,你也可以直接构建Jetty Servlet,获取并创建一个webSocket的Lister或是Adapter,并从Jetty线程池中创建新的线程执行该server去启动它,这没有一个固定的格式,取决于你的业务逻辑与编码习惯。

3.websocket信息交互服务设置

WebSocketAdapter是一个比WebSocketListener更为强大的适配器,它可以提供完整有效的Session检查。

当然,Jetty也提供注解的方式实现这个设置,分别是:

@WebSocket 一个必须的类级别注释,表示这个类作为WebSocket;

@OnWebSocketClose 一个可选的方法级别注释,对应关闭webSocket时执行;

@OnWebSocketConnect 一个可选的方法级别注释,对应打开webSocket时执行;

@OnWebSocketMessage 一个可选的方法级别注释,对应接收消息时执行;

@OnWebSockError 一个可选的方法级别注释,对应webSocket出现error事件时执行。

相关文章

  • Jetty WebSocket API使用

    Jetty WebSocket API使用 Jetty提供了功能更强的WebSocket API,使用一个公共的核...

  • 在Jetty中使用websocket

    1.序言 在工作中,我们有时候需要使用能与前端实时通信传输以通信,这种技术就是由Socket实现的,而Socket...

  • Jetty websocket使用nginx 解决wss连接失败

      在使用jetty的websocket中遇到了一些问题,因为使用的是微信打开的页面,所以必须使用https和ws...

  • Jetty Websocket

    1.序言   在工作中,我们有时候需要使用能与前端长时间实时通信传输以通信,这时就出现了的websocket。 2...

  • OC中WebSocket的使用

    在OC中webSocket一般使用SocketRocket 是facebook对webSocket的封装githu...

  • Jetty9 使用

    1、jetty介绍 Jetty比较简单,和Tomcat大致相同,本文主要描述jetty9以上版本的使用,jetty...

  • idea中maven内置jetty修改

    在pom文件中build标签下的jetty相关配置中 ${jetty.http.p...

  • Express Websocket使用

    本文主要介绍express+websocket的使用 WebSocket WebSocket 协议在2008年诞生...

  • Jetty嵌入开发路径问题

    我都知道在使用jetty在嵌入开发的时候使用 ContextHandler ,通过 setContextPath ...

  • WebSocket 在 SpringBoot 中的使用

    介绍 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSoc...

网友评论

      本文标题:在Jetty中使用websocket

      本文链接:https://www.haomeiwen.com/subject/dmhloftx.html