本文整理汇总了Java中io.vertx.core.http.WebSocket.writeFrame方法的典型用法代码示例。如果您正苦于以下问题:Java WebSocket.writeFrame方法的具体用法?Java WebSocket.writeFrame怎么用?Java WebSocket.writeFrame使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类io.vertx.core.http.WebSocket
的用法示例。
在下文中一共展示了WebSocket.writeFrame方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testTextFrameRawWebSocket
import io.vertx.core.http.WebSocket; //导入方法依赖的package包/类
@Test
public void testTextFrameRawWebSocket() throws InterruptedException {
String serverPath = "/textecho";
setupSockJsServer(serverPath, this::echoRequest);
String message = "hello";
AtomicReference<String> receivedReply = new AtomicReference<>();
WebSocket ws = setupRawWebsocketClient(serverPath);
ws.handler(replyBuffer -> receivedReply.set(replyBuffer.toString()));
ws.writeFrame(WebSocketFrame.textFrame(message, true));
await(5, TimeUnit.SECONDS);
assertEquals("Client reply should have matched request", message, receivedReply.get());
}
示例2: testTextFrameSockJs
import io.vertx.core.http.WebSocket; //导入方法依赖的package包/类
@Test
public void testTextFrameSockJs() throws InterruptedException {
String serverPath = "/text-sockjs";
setupSockJsServer(serverPath, this::echoRequest);
List<Buffer> receivedMessages = new ArrayList<>();
WebSocket openedWebSocket = setupSockJsClient(serverPath, receivedMessages);
String messageToSend = "[\"testMessage\"]";
openedWebSocket.writeFrame(WebSocketFrame.textFrame(messageToSend, true));
await(5, TimeUnit.SECONDS);
assertEquals("Client should have received 2 messages: the reply and the close.", 2, receivedMessages.size());
Buffer expectedReply = Buffer.buffer("a" + messageToSend);
assertEquals("Client reply should have matched request", expectedReply, receivedMessages.get(0));
assertEquals("Final message should have been a close", SOCKJS_CLOSE_REPLY, receivedMessages.get(1));
}
示例3: sendHeartbeat
import io.vertx.core.http.WebSocket; //导入方法依赖的package包/类
private void sendHeartbeat(WebSocket ws) {
try {
ws.writeFrame(new WebSocketFrameImpl(FrameType.PING));
} catch (IllegalStateException e) {
LOGGER.error("heartbeat fail", e);
}
}
示例4: testCombineBinaryContinuationFramesRawWebSocket
import io.vertx.core.http.WebSocket; //导入方法依赖的package包/类
/**
* Writing multiple continuation frames from the client side should result in a single message on the server side
* after the frames are re-combined
*/
@Test
public void testCombineBinaryContinuationFramesRawWebSocket() throws InterruptedException {
String serverPath = "/combine";
AtomicReference<Buffer> serverReceivedMessage = new AtomicReference<>();
setupSockJsServer(serverPath, (sock, requestBuffer) -> {
serverReceivedMessage.set(requestBuffer);
sock.write(Buffer.buffer("reply"));
sock.close();
});
Buffer largeMessage = Buffer.buffer(TestUtils.randomAlphaString(30));
WebSocketFrame frame1 = WebSocketFrame.binaryFrame(largeMessage.slice(0, 10), false);
WebSocketFrame frame2 = WebSocketFrame.continuationFrame(largeMessage.slice(10, 20), false);
WebSocketFrame frame3 = WebSocketFrame.continuationFrame(largeMessage.slice(20, largeMessage.length()), true);
WebSocket ws = setupRawWebsocketClient(serverPath);
ws.writeFrame(frame1);
ws.writeFrame(frame2);
ws.writeFrame(frame3);
await(5, TimeUnit.SECONDS);
assertEquals("Server did not combine continuation frames correctly", largeMessage, serverReceivedMessage.get());
}
示例5: testSplitLargeReplyRawWebSocket
import io.vertx.core.http.WebSocket; //导入方法依赖的package包/类
@Test
public void testSplitLargeReplyRawWebSocket() throws InterruptedException {
String serverPath = "/split";
String largeReply = TestUtils.randomAlphaString(65536 * 5);
Buffer largeReplyBuffer = Buffer.buffer(largeReply);
setupSockJsServer(serverPath, (sock, requestBuffer) -> {
sock.write(largeReplyBuffer);
sock.close();
});
Buffer totalReplyBuffer = Buffer.buffer(largeReplyBuffer.length());
AtomicInteger receivedReplies = new AtomicInteger(0);
WebSocket ws = setupRawWebsocketClient(serverPath);
ws.handler(replyBuffer -> {
totalReplyBuffer.appendBuffer(replyBuffer);
receivedReplies.incrementAndGet();
});
ws.writeFrame(WebSocketFrame.binaryFrame(Buffer.buffer("hello"), true));
await(5, TimeUnit.SECONDS);
int receivedReplyCount = receivedReplies.get();
assertEquals("Combined reply on client should equal message from server", largeReplyBuffer, totalReplyBuffer);
assertTrue("Should have received > 1 reply frame, actually received " + receivedReplyCount, receivedReplyCount > 1);
}
示例6: testCombineTextFrameSockJs
import io.vertx.core.http.WebSocket; //导入方法依赖的package包/类
@Test
public void testCombineTextFrameSockJs() throws InterruptedException {
String serverPath = "/text-combine-sockjs";
setupSockJsServer(serverPath, this::echoRequest);
List<Buffer> receivedMessages = new ArrayList<>();
WebSocket openedWebSocket = setupSockJsClient(serverPath, receivedMessages);
Buffer largeMessage = Buffer.buffer("[\"" + TestUtils.randomAlphaString(30) + "\"]");
WebSocketFrame frame1 = new WebSocketFrameImpl(FrameType.TEXT, largeMessage.slice(0, 10).getByteBuf(), false);
WebSocketFrame frame2 = WebSocketFrame.continuationFrame(largeMessage.slice(10, 20), false);
WebSocketFrame frame3 = WebSocketFrame.continuationFrame(largeMessage.slice(20, largeMessage.length()), true);
log.debug("Client sending " + frame1.textData());
openedWebSocket.writeFrame(frame1);
log.debug("Client sending " + frame2.textData());
openedWebSocket.writeFrame(frame2);
log.debug("Client sending " + frame3.textData());
openedWebSocket.writeFrame(frame3);
await(5, TimeUnit.SECONDS);
assertEquals("Client should have received 2 messages: the reply and the close.", 2, receivedMessages.size());
Buffer expectedReply = Buffer.buffer("a" + largeMessage.toString());
assertEquals("Client reply should have matched request", expectedReply, receivedMessages.get(0));
assertEquals("Final message should have been a close", SOCKJS_CLOSE_REPLY, receivedMessages.get(1));
}
示例7: testSplitLargeReplySockJs
import io.vertx.core.http.WebSocket; //导入方法依赖的package包/类
@Test
public void testSplitLargeReplySockJs() throws InterruptedException {
String serverPath = "/large-reply-sockjs";
String largeMessage = TestUtils.randomAlphaString(65536 * 2);
Buffer largeReplyBuffer = Buffer.buffer(largeMessage);
setupSockJsServer(serverPath, (sock, requestBuffer) -> {
sock.write(largeReplyBuffer);
sock.close();
});
List<Buffer> receivedMessages = new ArrayList<>();
WebSocket openedWebSocket = setupSockJsClient(serverPath, receivedMessages);
String messageToSend = "[\"hello\"]";
openedWebSocket.writeFrame(WebSocketFrame.textFrame(messageToSend, true));
await(5, TimeUnit.SECONDS);
int receivedReplyCount = receivedMessages.size();
assertTrue("Should have received > 2 reply frame, actually received " + receivedReplyCount, receivedReplyCount > 2);
Buffer expectedReplyBuffer = Buffer.buffer("a[\"").appendBuffer(largeReplyBuffer).appendBuffer(Buffer.buffer("\"]"));
Buffer clientReplyBuffer = combineReplies(receivedMessages.subList(0, receivedMessages.size() - 1));
assertEquals(String.format("Combined reply on client (length %s) should equal message from server (%s)",
clientReplyBuffer.length(), expectedReplyBuffer.length()),
expectedReplyBuffer, clientReplyBuffer);
Buffer finalMessage = receivedMessages.get(receivedMessages.size() - 1);
assertEquals("Final message should have been a close", SOCKJS_CLOSE_REPLY, finalMessage);
}