Package com.javachat.shared

Examples of com.javachat.shared.MessageHolder


        chatClient.sendMessage(message);
        clientSocketChannel = serverSocketChannel.accept();
        ByteBuffer buffer = ByteBuffer.allocate(100);
        clientSocketChannel.read(buffer);
        buffer.flip();
        Assert.assertEquals(message, new MessageHolder(100, ChatClient.CHARSET_NAME).readFromBuffer(buffer));
    }
View Full Code Here


    /**
     * Получение и обработка сообщений с севера
     */
    String onRead() throws IOException {
        if (holder == null) {
            holder = new MessageHolder(MESSAGE_LIMIT, CHARSET_NAME);
        }
        if (endBuffer != null && endBuffer.hasRemaining()) {
            buffer.put(endBuffer);
        }
        if (channel.read(buffer) == -1) {
View Full Code Here

    }

    // Чтение сообщений из канала
    private List<String> readMessages(SocketChannel channel, int count) throws IOException {
        List<String> retList = new LinkedList<>();
        MessageHolder holder = null;
        ByteBuffer end = null;
        ByteBuffer buffer = ByteBuffer.allocate(10);
        while (count > 0) {
            if (holder == null) {
                holder = new MessageHolder(100, ChatServer.CHARSET_NAME);
            }
            if (end != null) {
                buffer.put(end);
            }
            channel.read(buffer);
            buffer.flip();
            String message = holder.readFromBuffer(buffer);
            if (message != null) {
                retList.add(message);
                holder = null;
                count--;
            }
View Full Code Here

            readFromChannel(key, buffer);

            KeyAttach keyAttach = (KeyAttach) key.attachment();

            // Накопитель сообщения
            MessageHolder holder = keyAttach.getHolder();

            while (buffer.hasRemaining()) {
                if (holder == null) {
                    // Первое сообщение клиента или предыдущее сообщение полностью вычиталось
                    holder = new MessageHolder(MESSAGE_SIZE_LIMIT, CHARSET_NAME);
                    keyAttach.setHolder(holder);
                }
                String message = holder.readFromBuffer(buffer);
                if (message == null) {
                    // Сообщение еще не вычиталось
                    buffer.clear();
                    return;
                }
View Full Code Here

TOP

Related Classes of com.javachat.shared.MessageHolder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.