- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
比如我有一个房间
public class Room {
private int id;
private Set<User> users;
}
所以我希望它成为我的 websocket 应用程序的端点。但是可能有很多房间,我希望每个房间都有自己的 URI(例如,rooms/1、rooms/2 等)
显然,@ServerEnpoint 注解只允许常量。那么,有什么办法可以做到吗?
最佳答案
像这样:
@ServerEndpoint(value = "/rooms/{roomnumber}")
public class....
static Map<String, Session> openSessions = ...
@OnOpen
public void onConnectionOpen(final Session session, @PathParam("roomnumber") final String roomnumber,
...
//store roomnumber in session
session.getUserProperties().put("roomnumber", roomnumber);
openSessions.put( String.valueOf(session.getId()), session )
仅向特定房间号码/客户发送消息:
// check if session corresponds to the roomnumber
for (Map.Entry<String, Session> entry : openSessions.entrySet()) {
Session s = entry.getValue();
if (s.isOpen() && s.getUserProperties().get("roomnumber").equals(roomnumber_you_want_to_address)) {
...
当客户端断开连接时:
@OnClose
public void onConnectionClose(Session session) {
openSessions.remove(session.getId());
}
关于java - 有没有办法在 Java 中创建动态@ServerEndpoint 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33672736/
我使用 GF 4 作为 JavaEE 服务器。 这就是我对 servlet 处理的理解:有一个线程池,当请求到来时,这个池中的一个线程被用来处理请求。之后,线程被放回池中。 根据上面的信息,我想(我不
你好吗?我有一个问题,我一直在寻找明确的答案,但没有成功,因此我来这里寻求您的帮助! 一些信息:Java Web 项目,使用 JAVA 8、Tomcat 8.5.23 和 IntelliJ 作为我的
我正在使用 WebSockets 开发一个简单的应用程序。客户端可以发送输入文本,而服务器端是通过注释为 ServerEndpoint 的 Java 类实现的。在这里,接收到的输入文本被解码并发送到所
如何将字段自动连接到@ServerEndpoint。以下不起作用。 @Component @ServerEndpoint("/ws") public class MyWebSocket {
我可以将 websocket 端点映射到一组静态上下文或带有 uri 变量的上下文:@ServerEndpoint("/{name}") 它将匹配/anything 但不匹配/any/thing。如何
灵感来自 this thread我正在尝试这样做: @ServerEndpoint(... configurator = GetHttpSessionConfigurator.class) 没有@Se
很多人认为我使用 IDE,所以现在让我声明一下:我不使用任何 IDE。 我获取了以下 Java 源代码,将其编译为 Echo.class,然后通过编写 jar -cvf Echo.war Echo 创
我有一些 Soap、REST servlet,现在有一个 WebSocket: @ServerEndpoint("/game") public class WebSocketgame{ ... } 我
单个 ServerEndpoints 线程安全还是属于在给定时间与其交互的所有客户端? 或者用另一种方式问同样的问题: ServerEndpoint 类中的全局对象是否存在产生并发问题的危险,like
我有一个嵌入式 tomcat 正在运行,我正在尝试以编程方式设置 websockets,不能使用注释,因为我动态获取上下文路径列表。使用 Java 8 和 Tomcat 7。 下面是我使用的代码, 嵌
我已经创建了一个 websocket ServerEndPoint。websocket 服务器工作正常。如何在 Tomcat 启动时调用 websocket ServerEndPoint 类。这是为了
比如我有一个房间 public class Room { private int id; private Set users; } 所以我希望它成为我的 websocket 应用程序的端点
我有一个网络套接字@ServerEndpoint,它有一个我的过滤器监听的注释。但我的过滤器从未被调用(我的过滤器在普通 JAX-RS 资源上调用) 如何让我的过滤器被 Web 套接字端点调用? @S
意味着,它将从本地网络中的许多用户那里获得连接。我怎样才能获得每个连接的IP地址?我使用 JSR356。 @ServerEndpoint(value = "/ws/example") public c
我刚刚遇到以下问题,但无法找到答案: @ServerEndpoint("/websocket/server") public class ServerUpdateEndpoint implements
我正在尝试在 @ServerEndpoint 类中注入(inject)由 @Repository 类注释的内容。但是当我尝试调用存储库方法时,它返回 null。该包中的另一个注入(inject)的 b
我需要访问 HttpServletRequest 属性以获取 javax.servlet.request.X509Certificate,其中包含用于 TLS 的 X509Certificate 证书
当我使用 jersey 开发一个 rest api 应用程序时,我发现我需要为特定的业务逻辑片段实现一个 websocket 端点。 我在我的项目中使用maven,所以我添加了javax:javaee
我在循环中使用 RemoteEndpoint.Async 的 sendText() 方法将一些数据发送到 ClientEndPoint。由于数据是从 ServerEndpoint 异步发送的,因此 C
问题:@ServerEndpoint 类中的@Autowired beans 为空 如何确保下面的这个 WebSocketController 类将被注入(inject) bean,即如何让它由 Sp
我是一名优秀的程序员,十分优秀!