Java 这里有一对一的聊天吗

Java 这里有一对一的聊天吗,java,chat,atmosphere,Java,Chat,Atmosphere,我刚从Atmosphere开始开发一个简单的聊天应用程序。我下载了一个java示例。此应用正在向所有客户端发送消息。如何向特定客户端发送消息。我想我能得到uuid。请有人给我指引正确的方向 @Config @ManagedService(path = "/chat", atmosphereConfig = MAX_INACTIVE + "=9990000") public class Chat { private final Logger logger = LoggerFactor

我刚从Atmosphere开始开发一个简单的聊天应用程序。我下载了一个java示例。此应用正在向所有客户端发送消息。如何向特定客户端发送消息。我想我能得到uuid。请有人给我指引正确的方向

   @Config
@ManagedService(path = "/chat", atmosphereConfig = MAX_INACTIVE + "=9990000")
public class Chat {
    private final Logger logger = LoggerFactory.getLogger(Chat.class);

    @Inject
    private BroadcasterFactory factory;

    @Heartbeat
    public void onHeartbeat(final AtmosphereResourceEvent event) {
        logger.trace("Heartbeat send by {}", event.getResource());
    }

    @Ready
    public void onReady(final AtmosphereResource r) {
        logger.info("Browser {} connected", r.uuid());
        if(null!=factory && null!=factory.getClass()){
            logger.info("BroadcasterFactory used {}", factory.getClass().getName());
        }

    }


    @Disconnect
    public void onDisconnect(AtmosphereResourceEvent event) {
        if (event.isCancelled()) {
            logger.info("Browser {} unexpectedly disconnected", event.getResource().uuid());
        } else if (event.isClosedByClient()) {
            logger.info("Browser {} closed the connection", event.getResource().uuid());
        }
    }


    @org.atmosphere.config.service.Message(encoders = {JacksonEncoder.class}, decoders = {JacksonDecoder.class})
     @DeliverTo(DeliverTo.DELIVER_TO.BROADCASTER)
    public Message onMessage(Message message) throws IOException {
        logger.info("{} just send {}", message.getAuthor(), message.getMessage());
        return message;
    }

}

您的Java类不完整

首先,缺少一个变量来标识路径中的每个聊天室:

 @ManagedService(path = "/chat/{chatRoomId}", atmosphereConfig = MAX_INACTIVE + "=9990000")
  public class Chat {

     @PathParam("chatRoomId")
     private String chatRoomId;

     [...]
  }
但是,您只能将所有消息发送到一个已连接的套接字

其次,发送和接收websocket消息的脚本JS文件在哪里

此脚本JS文件必须包含以下方法:

request.onOpen = function(request, response) {

};

request.onTransportFailure = function(request, response) {

};

request.onMessage = function(request, response) {

};

request.onClose = function(request, response) {

};

request.onError= function(request, response) {

};
request.onReconnect = function(request, response) {

};
最重要的是声明请求的结构:

var socket = atmosphere;
var subSocket;
var transport = 'websocket';

var request = { 
    url: document.location.toString() + 'chat' + chatRoomId,
    contentType : "application/json",
    logLevel : 'debug',
    transport : transport ,
    trackMessageLength : true,
    reconnectInterval : 5000 
};