当前位置: 首页>>代码示例>>Java>>正文


Java SendHandler类代码示例

本文整理汇总了Java中javax.websocket.SendHandler的典型用法代码示例。如果您正苦于以下问题:Java SendHandler类的具体用法?Java SendHandler怎么用?Java SendHandler使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


SendHandler类属于javax.websocket包,在下文中一共展示了SendHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: doWrite

import javax.websocket.SendHandler; //导入依赖的package包/类
@Override
protected void doWrite(SendHandler handler, ByteBuffer... data) {
    long timeout = getSendTimeout();
    if (timeout < 1) {
        timeout = Long.MAX_VALUE;

    }
    SendHandlerToCompletionHandler sh2ch =
            new SendHandlerToCompletionHandler(handler);
    try {
        channel.write(data, 0, data.length, timeout, TimeUnit.MILLISECONDS,
                null, sh2ch);
    } catch (IllegalStateException ise) {
        sh2ch.failed(ise, null);
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:17,代码来源:WsRemoteEndpointImplClient.java

示例2: broadcast

import javax.websocket.SendHandler; //导入依赖的package包/类
public void broadcast(@Observes @LeaderDataQualifier String leaderboard) {
    for (final Session s : CLIENTS) {
        if (s != null && s.isOpen()) {
            /**
             * Asynchronous push
             */
            s.getAsyncRemote().sendText(leaderboard, new SendHandler() {
                @Override
                public void onResult(SendResult result) {
                    if (result.isOK()) {
                        //Logger.getLogger(MeetupGroupsLiveLeaderboardEndpoint.class.getName()).log(Level.INFO, " sent to client {0}", s.getId());
                    } else {
                        Logger.getLogger(MeetupGroupsLiveLeaderboardEndpoint.class.getName()).log(Level.SEVERE, "Could not send to client " + s.getId(),
                                result.getException());
                    }
                }
            });
        }

    }

}
 
开发者ID:abhirockzz,项目名称:redis-websocket-javaee,代码行数:23,代码来源:MeetupGroupsLiveLeaderboardEndpoint.java

示例3: onOpen

import javax.websocket.SendHandler; //导入依赖的package包/类
public void onOpen(final Session session, EndpointConfig endpointConfig) {
	session.getAsyncRemote().sendText(
			"Client Success!Your id is: " + session.getId());
	session.addMessageHandler(new MessageHandler.Whole<String>() {
		@Override
		public void onMessage(String message) {
			session.getAsyncRemote().sendObject(message, new SendHandler() {
				@Override
				public void onResult(SendResult result) {
					System.out.println(session.getId() + ":"
							+ result.isOK());
				}
			});
		}
	});
}
 
开发者ID:legend0702,项目名称:zhq,代码行数:17,代码来源:WebSocketServer.java

示例4: sendMessage

import javax.websocket.SendHandler; //导入依赖的package包/类
/** 
     * sendMessage is executed snychronously to avoid tomcat nativelib crashes.  
     * @param session
     * @param message
     * @param handler 
     */
    public synchronized static void sendMessage(final Session session, final String message, final SendHandler handler) {
//        synchronized (session) {
            try {
                session.getBasicRemote().sendText(message);
                handler.onResult(new SendResult());
            } catch (IOException ex) {
                Logger.getLogger(WebSocket.class.getName()).log(Level.SEVERE, null, ex);
                handler.onResult(new SendResult(ex));
                try {
                    //close broken session
                    session.close();
                } catch (IOException ex1) {
                    Logger.getLogger(WebSocket.class.getName()).log(Level.SEVERE, null, ex1);
                }
            }
//        }
//        }
    }
 
开发者ID:KAOREND,项目名称:reactive-hamster,代码行数:25,代码来源:WebSocket.java

示例5: onWebSocketText

import javax.websocket.SendHandler; //导入依赖的package包/类
@OnMessage
public void onWebSocketText(String message)
{
    System.out.println("Received TEXT message: " + message);
    try {
    	if ((session != null) && (session.isOpen()))
        {
            System.out.println("Echoing back text message "+message);
            session.getAsyncRemote().sendText("Received: "+message,new SendHandler(){

	@Override
	public void onResult(SendResult arg0) {
		if (!arg0.isOK()){
			System.out.println("Error Sending Response: "+arg0.getException().getMessage());
		}
	}
            	
            });
        }
    } catch (Exception e){
    	System.out.println("Error: "+e.getMessage());
    	e.printStackTrace();
    }
}
 
开发者ID:adityayadav76,项目名称:internet_of_things_simulator,代码行数:25,代码来源:MyEventServerSocket.java

示例6: writeData

import javax.websocket.SendHandler; //导入依赖的package包/类
@Override
public void writeData(ByteBuffer data) {
	if (!this.isConnected()) {
		System.err.println("attempted to write before connection is open.");
		return;
	}
	new Thread(() -> 
	this.dataSession.getAsyncRemote().sendBinary(data, new SendHandler() {
		@Override
		public void onResult(SendResult arg0) {
			RemoteP2PConnection.this.executor.execute(new Runnable() {
				@Override
				public void run() {
					if (RemoteP2PConnection.this.handler != null) RemoteP2PConnection.this.handler.onDataSent(RemoteP2PConnection.this);
				}
			});
		}
	})).start();
}
 
开发者ID:ls1intum,项目名称:jReto,代码行数:20,代码来源:RemoteP2PConnection.java

示例7: onOpen

import javax.websocket.SendHandler; //导入依赖的package包/类
@Override
public void onOpen(final Session session, EndpointConfig ec) {
    session.addMessageHandler(new MessageHandler.Whole<String>() {

        @Override
        public void onMessage(String data) {
            System.out.println("Received (MyEndpointHandler) : " + data);

            session.getAsyncRemote().sendText(data, new SendHandler() {

                @Override
                public void onResult(SendResult sr) {
                    if (sr.isOK()) {
                        System.out.println("Message written to the socket (handler)");
                    } else {
                        System.out.println("Message NOT written to the socket (handler)");
                        sr.getException().printStackTrace();
                    }

                }
            });
        }
    });
}
 
开发者ID:ftomassetti,项目名称:JavaIncrementalParser,代码行数:25,代码来源:MyEndpointHandler.java

示例8: sendBytesByCompletion

import javax.websocket.SendHandler; //导入依赖的package包/类
public void sendBytesByCompletion(ByteBuffer data, SendHandler handler) {
    if (data == null) {
        throw new IllegalArgumentException(sm.getString("wsRemoteEndpoint.nullData"));
    }
    if (handler == null) {
        throw new IllegalArgumentException(sm.getString("wsRemoteEndpoint.nullHandler"));
    }
    StateUpdateSendHandler sush = new StateUpdateSendHandler(handler);
    stateMachine.binaryStart();
    startMessage(Constants.OPCODE_BINARY, data, true, sush);
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:12,代码来源:WsRemoteEndpointImplBase.java

示例9: sendStringByCompletion

import javax.websocket.SendHandler; //导入依赖的package包/类
public void sendStringByCompletion(String text, SendHandler handler) {
    if (text == null) {
        throw new IllegalArgumentException(sm.getString("wsRemoteEndpoint.nullData"));
    }
    if (handler == null) {
        throw new IllegalArgumentException(sm.getString("wsRemoteEndpoint.nullHandler"));
    }
    stateMachine.textStart();
    TextMessageSendHandler tmsh = new TextMessageSendHandler(handler,
            CharBuffer.wrap(text), true, encoder, encoderBuffer, this);
    tmsh.write();
    // TextMessageSendHandler will update stateMachine when it completes
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:14,代码来源:WsRemoteEndpointImplBase.java

示例10: endMessage

import javax.websocket.SendHandler; //导入依赖的package包/类
void endMessage(SendHandler handler, SendResult result) {
    boolean doWrite = false;
    MessagePart mpNext = null;
    synchronized (messagePartLock) {

        fragmented = nextFragmented;
        text = nextText;

        mpNext = messagePartQueue.poll();
        if (mpNext == null) {
            messagePartInProgress = false;
        } else if (!closed){
            // Session may have been closed unexpectedly in the middle of
            // sending a fragmented message closing the endpoint. If this
            // happens, clearly there is no point trying to send the rest of
            // the message.
            doWrite = true;
        }
    }
    if (doWrite) {
        // Actual write has to be outside sync block to avoid possible
        // deadlock between messagePartLock and writeLock in
        // o.a.coyote.http11.upgrade.AbstractServletOutputStream
        writeMessagePart(mpNext);
    }

    wsSession.updateLastActive();

    // Some handlers, such as the IntermediateMessageHandler, do not have a
    // nested handler so handler may be null.
    if (handler != null) {
        handler.onResult(result);
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:35,代码来源:WsRemoteEndpointImplBase.java

示例11: TextMessageSendHandler

import javax.websocket.SendHandler; //导入依赖的package包/类
public TextMessageSendHandler(SendHandler handler, CharBuffer message,
        boolean isLast, CharsetEncoder encoder,
        ByteBuffer encoderBuffer, WsRemoteEndpointImplBase endpoint) {
    this.handler = handler;
    this.message = message;
    this.isLast = isLast;
    this.encoder = encoder.reset();
    this.buffer = encoderBuffer;
    this.endpoint = endpoint;
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:11,代码来源:WsRemoteEndpointImplBase.java

示例12: OutputBufferSendHandler

import javax.websocket.SendHandler; //导入依赖的package包/类
public OutputBufferSendHandler(SendHandler completion,
        ByteBuffer headerBuffer, ByteBuffer payload, byte[] mask,
        ByteBuffer outputBuffer, boolean flushRequired,
        WsRemoteEndpointImplBase endpoint) {
    this.handler = completion;
    this.headerBuffer = headerBuffer;
    this.payload = payload;
    this.mask = mask;
    this.outputBuffer = outputBuffer;
    this.flushRequired = flushRequired;
    this.endpoint = endpoint;
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:13,代码来源:WsRemoteEndpointImplBase.java

示例13: doWrite

import javax.websocket.SendHandler; //导入依赖的package包/类
@Override
protected void doWrite(SendHandler handler, ByteBuffer... buffers) {
    this.handler = handler;
    this.buffers = buffers;
    // This is definitely the same thread that triggered the write so a
    // dispatch will be required.
    onWritePossible(true);
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:9,代码来源:WsRemoteEndpointImplServer.java

示例14: clearHandler

import javax.websocket.SendHandler; //导入依赖的package包/类
/**
 *
 * @param t             The throwable associated with any error that
 *                      occurred
 * @param useDispatch   Should {@link SendHandler#onResult(SendResult)} be
 *                      called from a new thread, keeping in mind the
 *                      requirements of
 *                      {@link javax.websocket.RemoteEndpoint.Async}
 */
private void clearHandler(Throwable t, boolean useDispatch) {
    // Setting the result marks this (partial) message as
    // complete which means the next one may be sent which
    // could update the value of the handler. Therefore, keep a
    // local copy before signalling the end of the (partial)
    // message.
    SendHandler sh = handler;
    handler = null;
    buffers = null;
    if (sh != null) {
        if (useDispatch) {
            OnResultRunnable r = onResultRunnables.poll();
            if (r == null) {
                r = new OnResultRunnable(onResultRunnables);
            }
            r.init(sh, t);
            if (executorService == null || executorService.isShutdown()) {
                // Can't use the executor so call the runnable directly.
                // This may not be strictly specification compliant in all
                // cases but during shutdown only close messages are going
                // to be sent so there should not be the issue of nested
                // calls leading to stack overflow as described in bug
                // 55715. The issues with nested calls was the reason for
                // the separate thread requirement in the specification.
                r.run();
            } else {
                executorService.execute(r);
            }
        } else {
            if (t == null) {
                sh.onResult(new SendResult());
            } else {
                sh.onResult(new SendResult(t));
            }
        }
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:47,代码来源:WsRemoteEndpointImplServer.java

示例15: MessagePart

import javax.websocket.SendHandler; //导入依赖的package包/类
public MessagePart( boolean fin, int rsv, byte opCode, ByteBuffer payload,
        SendHandler intermediateHandler, SendHandler endHandler) {
    this.fin = fin;
    this.rsv = rsv;
    this.opCode = opCode;
    this.payload = payload;
    this.intermediateHandler = intermediateHandler;
    this.endHandler = endHandler;
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:10,代码来源:MessagePart.java


注:本文中的javax.websocket.SendHandler类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。