UserChatMessageSendService.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.webchat.connect.service;
  2. import com.webchat.common.bean.APIResponseBean;
  3. import com.webchat.common.constants.ConnectConstants;
  4. import com.webchat.common.service.WsSessionRegistryService;
  5. import com.webchat.common.util.JsonUtil;
  6. import com.webchat.domain.vo.request.mess.ChatMessageRequestVO;
  7. import com.webchat.rmi.builder.FeignClientBuilder;
  8. import com.webchat.rmi.connect.ConnectServiceClient;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. @Slf4j
  13. @Service
  14. public class UserChatMessageSendService {
  15. @Autowired
  16. private WsSessionRegistryService sessionRegistryService;
  17. private String getSSEBizCode() {
  18. return ConnectConstants.ConnectBiz.getBizCode(ConnectConstants.ClientEnum.PC,
  19. ConnectConstants.AppEnum.WEB,
  20. ConnectConstants.BizEnum.CHAT);
  21. }
  22. public void doSend(ChatMessageRequestVO chatMessage) {
  23. String instanceHost = this.getReceiverSessionInstanceHost(getSSEBizCode(), chatMessage.getReceiverId());
  24. if (instanceHost == null) {
  25. return;
  26. }
  27. FeignClientBuilder<ConnectServiceClient> feignClientBuilder = new FeignClientBuilder(ConnectServiceClient.class);
  28. ConnectServiceClient connectServiceClient = feignClientBuilder.build(instanceHost);
  29. APIResponseBean<Boolean> apiResponseBean = connectServiceClient.doSend(chatMessage);
  30. log.info("RPC消息发送 ===> request:{}, response:{}",
  31. JsonUtil.toJsonString(chatMessage), JsonUtil.toJsonString(apiResponseBean));
  32. }
  33. private String getReceiverSessionInstanceHost(String bizCode, String receiverId) {
  34. return sessionRegistryService.getInstance(bizCode, receiverId);
  35. }
  36. }