Search in sources :

Example 1 with SendTo

use of org.springframework.messaging.handler.annotation.SendTo in project 2017-01-HUDI-MAC-CHAR by NHNNEXT.

the class MessageHandler method broadcasting.

@MessageMapping("/ready/{roomId}")
@SendTo("/from/ready/{roomId}")
public ReadySignal broadcasting(ReadySignal ready, @DestinationVariable long roomId) throws Exception {
    log.debug("ReadySignal arrived: /ready/{}, ready: {}", roomId, ready);
    Room room = lobby.getRoom(roomId);
    room.findByNickname(ready.getUserName()).toggleReady();
    if (room.isAllReady()) {
        ready.setStartTimer(true);
        room.createGameManager();
    }
    return ready;
}
Also used : Room(com.mapia.domain.Room) SendTo(org.springframework.messaging.handler.annotation.SendTo) MessageMapping(org.springframework.messaging.handler.annotation.MessageMapping)

Example 2 with SendTo

use of org.springframework.messaging.handler.annotation.SendTo in project 2017-01-HUDI-MAC-CHAR by NHNNEXT.

the class MessageHandler method broadcasting.

@MessageMapping("/access/{roomId}")
@SendTo("/from/access/{roomId}")
public ClientAccess broadcasting(ClientAccess access, @DestinationVariable long roomId) throws Exception {
    log.debug("ClientAccess arrived: /access/{}, access: {}", roomId, access);
    Room room = lobby.getRoom(roomId);
    access.setUsers(room.getUsers());
    return access;
}
Also used : Room(com.mapia.domain.Room) SendTo(org.springframework.messaging.handler.annotation.SendTo) MessageMapping(org.springframework.messaging.handler.annotation.MessageMapping)

Example 3 with SendTo

use of org.springframework.messaging.handler.annotation.SendTo in project 2017-01-HUDI-MAC-CHAR by NHNNEXT.

the class MessageHandler method broadcasting.

@MessageMapping("/gameStart/{roomId}/{userName}")
@SendTo("/from/gameStart/{roomId}/{userName}")
public String broadcasting(GameStart gameStart, @DestinationVariable long roomId, @DestinationVariable String userName) throws Exception {
    log.debug("GameStart arrived: /gameStart/{}/{}, gameStart: {}", roomId, userName, gameStart);
    Room gameRoom = lobby.getRoom(roomId);
    gameRoom.getUsers().forEach(user -> user.gameStart());
    return gameRoom.getUserRoleNameInGame(userName);
}
Also used : Room(com.mapia.domain.Room) SendTo(org.springframework.messaging.handler.annotation.SendTo) MessageMapping(org.springframework.messaging.handler.annotation.MessageMapping)

Example 4 with SendTo

use of org.springframework.messaging.handler.annotation.SendTo in project spring-cloud-stream by spring-cloud.

the class StreamListenerMethodUtils method getOutboundBindingTargetName.

protected static String getOutboundBindingTargetName(Method method) {
    SendTo sendTo = AnnotationUtils.findAnnotation(method, SendTo.class);
    if (sendTo != null) {
        Assert.isTrue(!ObjectUtils.isEmpty(sendTo.value()), StreamListenerErrorMessages.ATLEAST_ONE_OUTPUT);
        Assert.isTrue(sendTo.value().length == 1, StreamListenerErrorMessages.SEND_TO_MULTIPLE_DESTINATIONS);
        Assert.hasText(sendTo.value()[0], StreamListenerErrorMessages.SEND_TO_EMPTY_DESTINATION);
        return sendTo.value()[0];
    }
    Output output = AnnotationUtils.findAnnotation(method, Output.class);
    if (output != null) {
        Assert.isTrue(StringUtils.hasText(output.value()), StreamListenerErrorMessages.ATLEAST_ONE_OUTPUT);
        return output.value();
    }
    return null;
}
Also used : SendTo(org.springframework.messaging.handler.annotation.SendTo) Output(org.springframework.cloud.stream.annotation.Output)

Example 5 with SendTo

use of org.springframework.messaging.handler.annotation.SendTo in project spring-cloud-stream by spring-cloud.

the class StreamAnnotationCommonMethodUtils method getOutboundBindingTargetName.

public static String getOutboundBindingTargetName(Method method) {
    SendTo sendTo = AnnotationUtils.findAnnotation(method, SendTo.class);
    if (sendTo != null) {
        Assert.isTrue(!ObjectUtils.isEmpty(sendTo.value()), StreamAnnotationErrorMessages.ATLEAST_ONE_OUTPUT);
        Assert.isTrue(sendTo.value().length == 1, StreamAnnotationErrorMessages.SEND_TO_MULTIPLE_DESTINATIONS);
        Assert.hasText(sendTo.value()[0], StreamAnnotationErrorMessages.SEND_TO_EMPTY_DESTINATION);
        return sendTo.value()[0];
    }
    Output output = AnnotationUtils.findAnnotation(method, Output.class);
    if (output != null) {
        Assert.isTrue(StringUtils.hasText(output.value()), StreamAnnotationErrorMessages.ATLEAST_ONE_OUTPUT);
        return output.value();
    }
    return null;
}
Also used : SendTo(org.springframework.messaging.handler.annotation.SendTo) Output(org.springframework.cloud.stream.annotation.Output)

Aggregations

SendTo (org.springframework.messaging.handler.annotation.SendTo)11 MessageMapping (org.springframework.messaging.handler.annotation.MessageMapping)6 Room (com.mapia.domain.Room)4 ResponseMessage (com.hry.spring.mvc.websocket.model.ResponseMessage)2 Output (org.springframework.cloud.stream.annotation.Output)2 SendToUser (org.springframework.messaging.simp.annotation.SendToUser)2 Method (java.lang.reflect.Method)1 Nullable (org.springframework.lang.Nullable)1 MessageHeaders (org.springframework.messaging.MessageHeaders)1 InvocableHandlerMethod (org.springframework.messaging.handler.invocation.InvocableHandlerMethod)1