WebSockets 生产就绪的 Java 服务器?
编辑:删除了对C#的引用,因为唯一被接受的答案是关于Java的。如果有人需要有关 C# 中 websocket 服务器实现的信息,请提出一个新问题。
您知道在Java中创建WebSockets Server的“生产就绪”框架吗?我找到了一个库 http://nugget.codeplex.com/,但我不知道它是如何稳定和快速的。
编辑:删除了对C#的引用,因为唯一被接受的答案是关于Java的。如果有人需要有关 C# 中 websocket 服务器实现的信息,请提出一个新问题。
您知道在Java中创建WebSockets Server的“生产就绪”框架吗?我找到了一个库 http://nugget.codeplex.com/,但我不知道它是如何稳定和快速的。
接受的答案是3年前,随着JEE7的最新版本,现在每个实现servert 3.1的Web容器都将通过标准API(javax.websocket)包支持websocket。
下面的代码显示了如何使用 JEE7 实现 websocket 的示例:
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint(value = "/chat")
public class ChatServer {
private static final Logger LOGGER =
Logger.getLogger(ChatServer.class.getName());
@OnOpen
public void onOpen(Session session) {
LOGGER.log(Level.INFO, "New connection with client: {0}",
session.getId());
}
@OnMessage
public String onMessage(String message, Session session) {
LOGGER.log(Level.INFO, "New message from Client [{0}]: {1}",
new Object[] {session.getId(), message});
return "Server received [" + message + "]";
}
@OnClose
public void onClose(Session session) {
LOGGER.log(Level.INFO, "Close connection for client: {0}",
session.getId());
}
@OnError
public void onError(Throwable exception, Session session) {
LOGGER.log(Level.INFO, "Error for client: {0}", session.getId());
}
}
此处提供详细示例。
支持 Websocket 的 Web 容器:
对于Java,请查看这篇内容丰富的文章。从那里复制粘贴:
在这些选项中,我想Jetty和Resin是最成熟和最稳定的。但是,做自己的测试总是好的。