17#ifndef __HIVE_CHAT_H__
18#define __HIVE_CHAT_H__
72class HIVESDK_DLLEXPORT
Chat {
75 typedef std::function<void(
ResultAPI const & result)> onResult;
76 typedef std::function<void(
ResultAPI const & result)> onCreateChannel;
77 typedef std::function<void(
ResultAPI const & result)> onDeleteChannel;
78 typedef std::function<void(
ResultAPI const & result)> onEnterChannel;
79 typedef std::function<void(
ResultAPI const & result)> onExitChannel;
80 typedef std::function<void(
ResultAPI const & result)> onBlockMember;
81 typedef std::function<void(
ResultAPI const & result)> onUnblockMember;
82 typedef std::function<void(
ResultAPI const & result)> onChannelTranslationSetting;
83 typedef std::function<void(
ResultAPI const & result)> onConnect;
84 typedef std::function<void(
ResultAPI const & result)> onDisconnect;
85 typedef std::function<void(
ResultAPI const & result, std::vector<std::string>
const & channelIds, std::vector<std::string>
const & failChannelIds)> onReconnect;
86 typedef std::function<void(
ResultAPI const & result, std::vector<Channel>
const & channels,
ChannelPage const & channelPage)> onGetChannels;
87 typedef std::function<void(
ResultAPI const & result,
Channel const & channel, std::vector<Member>
const & members)> onGetChannelInfo;
88 typedef std::function<void(
ResultAPI const & result, std::vector<Member>
const & members)> onGetChannelMembers;
89 typedef std::function<void(
ResultAPI const & result, std::vector<Channel>
const & channels)> onGetChannelsByUser;
90 typedef std::function<void(
ResultAPI const & result, std::vector<BlockMember>
const & blockMembers)> onGetBlockMembers;
184 static void deleteChannel(
const char * channelId, onDeleteChannel listener);
220 static void exitChannel(
const char * channelId, onExitChannel listener);
274 static void blockMember(int64_t blockPlayerId, onBlockMember listener);
308 static void translate(TranslateParams
const & params, onTranslate listener);
328 static void connect(
const char * extraData, onResult listener);
626 static void executeEngine(picojson::value jsonParam);
662 std::string channelId;
668 std::string channelName;
676 int64_t regTimeMillis;
678 bool chatHistoryAllowed;
681 bool parse(picojson::value
const & json);
682 picojson::object toJson()
const;
683 std::string toString()
const;
686 void setTranslationEnabled(
bool enabled, Chat::onChannelTranslationSetting listener)
const;
706 bool parse(picojson::value
const & json);
707 picojson::object toJson()
const;
720 std::string connectedTime;
722 int64_t connectedTimeMillis;
725 bool parse(picojson::value
const & json);
726 picojson::object toJson()
const;
739 std::string blockedTime;
741 int64_t blockedTimeMillis;
744 bool parse(picojson::value
const & json);
745 picojson::object toJson()
const;
757 std::string channelId;
759 std::string password;
761 std::string channelName;
767 bool chatHistoryAllowed;
770 picojson::object toJson()
const;
771 std::string toString()
const;
784 std::string channelId;
786 std::string channelName;
790 std::string pageOrder;
797 picojson::object toJson()
const;
798 std::string toString()
const;
809 std::string channelId;
811 std::string password;
814 picojson::object toJson()
const;
815 std::string toString()
const;
826 std::string channelId;
830 std::string extraData;
833 picojson::object toJson()
const;
834 std::string toString()
const;
835 bool parse(picojson::value
const & json);
850 std::string extraData;
853 picojson::object toJson()
const;
854 std::string toString()
const;
855 bool parse(picojson::value
const & json);
871 picojson::object toJson()
const;
872 std::string toString()
const;
875class HIVESDK_DLLEXPORT TranslateParams {
878 std::string sourceLanguage;
879 std::vector<std::string> targetLanguage;
882 picojson::object toJson()
const;
883 std::string toString()
const;
895 std::string channelId;
899 std::string timestamp;
901 int64_t timestampMillis;
904 bool parse(picojson::value
const & json);
915 std::string channelId;
919 std::string timestamp;
921 int64_t timestampMillis;
924 bool parse(picojson::value
const & json);
935 std::string channelId;
937 std::string timestamp;
939 int64_t timestampMillis;
942 bool parse(picojson::value
const & json);
954 std::string channelId;
960 std::string timestamp;
962 int64_t timestampMillis;
965 bool parse(picojson::value
const & json);
978 std::string extraData;
984 std::string timestamp;
986 int64_t timestampMillis;
990 std::string translatedMessage;
994 bool parse(picojson::value
const & json);
1007 std::string extraData;
1011 std::string message;
1013 std::string timestamp;
1015 int64_t timestampMillis;
1018 bool parse(picojson::value
const & json);
1031 std::string message;
1033 std::string timestamp;
1035 int64_t timestampMillis;
1038 bool parse(picojson::value
const & json);
1049 std::string nextIndex;
1050 std::vector<ChannelMessage> messages;
1053 bool parse(picojson::value
const & json);
1063 map<std::string, std::string> translations;
1066 bool parse(picojson::value
const & json);
1078 virtual void onEnteredMember(
EnteredMember const & member) = 0;
1080 virtual void onExitedMember(
ExitedMember const & member) = 0;
1082 virtual void onDeletedChannel(
DeletedChannel const & channel) = 0;
1086 virtual void onChannelMessage(
ChannelMessage const & message) = 0;
1100 virtual void onDirectMessage(
DirectMessage const & message) = 0;
1111 virtual void onDirectMessage(
DirectMessage const & message) = 0;
1113 virtual void onNoticeMessage(
NoticeMessage const & message) = 0;
1126 virtual void onConnected() = 0;
1128 virtual void onReconnectStarted() = 0;
1130 virtual void onReconnected(
ResultAPI const & result, std::vector<std::string>
const & channelIds, std::vector<std::string>
const & failChannelIds) = 0;
1132 virtual void onDisconnected() = 0;
1145 virtual void onCustomData(std::string
const & data) = 0;
1150class HIVESDK_DLLEXPORT Unique64 {
1153 static Unique64& getInstance();
1154 std::string generateKey();
1157 uint64_t last_timestamp_ms_;
1160 static const uint16_t MAX_SEQUENCE = 0xFFFF;
1163 uint64_t getCurrentTimestampMs();
1164 uint64_t waitUntilNextMillisecond(uint64_t current_ts_ms_ref);
1167template<
typename Key,
typename Value>
1168class ThreadSafeMap {
1170 std::map<Key, Value> map_;
1171 mutable std::mutex mutex_;
1174 ThreadSafeMap() =
default;
1175 ThreadSafeMap(
const ThreadSafeMap&) =
delete;
1176 ThreadSafeMap& operator=(
const ThreadSafeMap&) =
delete;
1177 void insert(
const Key& key,
const Value& value);
1178 Value get(
const Key& key)
const;
1179 bool contains(
const Key& key)
const;
1180 size_t erase(
const Key& key);
차단된 사용자 정보
Definition: HIVE_Chat.h:734
채팅 채널 정보
Definition: HIVE_Chat.h:659
채널 이벤트 리스너
Definition: HIVE_Chat.h:1075
채널 메시지 정보
Definition: HIVE_Chat.h:973
채널 대화 이력 조회 파라미터
Definition: HIVE_Chat.h:863
채널 대화 이력 정보
Definition: HIVE_Chat.h:1046
채널 공지 메시지 정보
Definition: HIVE_Chat.h:951
채널 조회 페이지 정보
Definition: HIVE_Chat.h:694
채널 메시지 전송 파라미터
Definition: HIVE_Chat.h:823
HiveChat은 실시간, 그룹, 1:1 채팅, 유저 간 차단 기능 등 게임에서 원활한 채팅을 할 수 있도록 필요한 핵심 기능을 제공하기 때문에 유저 간 협력을 증가시켜 게임 플레이...
Definition: HIVE_Chat.h:72
연결 리스너
Definition: HIVE_Chat.h:1123
채널 생성 파라미터
Definition: HIVE_Chat.h:754
커스텀 데이터 리스너
Definition: HIVE_Chat.h:1142
삭제된 채널 정보
Definition: HIVE_Chat.h:932
1:1 메시지 정보
Definition: HIVE_Chat.h:1002
1:1 메시지 리스너
Definition: HIVE_Chat.h:1097
1:1 메시지 전송 파라미터
Definition: HIVE_Chat.h:843
채널 입장 파라미터
Definition: HIVE_Chat.h:806
입장 멤버 정보
Definition: HIVE_Chat.h:892
퇴장 멤버 정보
Definition: HIVE_Chat.h:912
채널 목록 조회 파라미터
Definition: HIVE_Chat.h:779
채널 멤버 정보
Definition: HIVE_Chat.h:715
유저 대상 공지 메시지 정보
Definition: HIVE_Chat.h:1026
Definition: HIVE_ResultAPI.h:64
메시지 번역 결과
Definition: HIVE_Chat.h:1061
유저 이벤트 리스너
Definition: HIVE_Chat.h:1108
static void removeCustomDataListener(const char *uniqueKey)
커스텀 데이터 리스너 제거
static void removeChannelListener(const char *uniqueKey)
채널 리스너 제거 등록된 채널 리스너를 제거합니다.
static void addConnectionListener(const char *uniqueKey, ConnectionListener *listener)
연결 리스너 등록 채팅서버 연결 상태를 수신하기 위한 리스너를 등록합니다.
static void sendMessageWithDirectSendMessageParams(DirectSendMessageParams const ¶ms)
1:1 메시지 전송 수신자 ID와 메시지를 입력받아, 해당 사용자에게 메시지를 전송합니다.
ChannelType
채팅 채널 타입 정보
Definition: HIVE_Chat.h:635
static void addChannelListener(const char *uniqueKey, ChannelListener *listener)
채널 리스너 등록 채널 이벤트를 수신하기 위한 리스너를 등록합니다.
static void addUserListener(const char *uniqueKey, UserListener *listener)
유저 리스너 등록 유저 이벤트를 수신하기 위한 리스너를 등록합니다.
static void disconnect(onDisconnect listener)
채팅서버 연결 해제 채팅서버와의 연결을 해제합니다.
static void getChannelMembers(const char *channelId, onGetChannelMembers listener)
채널 멤버 조회 채널 ID를 입력받아, 해당 채널의 멤버 목록을 조회합니다.
static void getChannelsByUser(onGetChannelsByUser listener)
참여중인 채널 목록 조회 참여중인 채널 목록을 조회합니다.
static void unblockMember(int64_t blockPlayerId, onUnblockMember listener)
사용자 차단 해제 사용자 ID를 입력받아, 해당 사용자의 차단을 해제합니다.
static void connect(const char *extraData, onResult listener)
채팅서버에 연결 (더 이상 사용되지 않음) 이 메서드는 더 이상 사용을 권장하지 않으며, 향후 버전에서 제거될 예정입니다.
static void translate(TranslateParams const ¶ms, onTranslate listener)
메시지 번역 요청 targetLanguage와 번역할 메시지를 입력받아, 해당 메시지를 번역합니다.
static void connect(onConnect listener)
채팅서버에 연결 채팅서버에 연결을 시도합니다.
static void deleteChannel(const char *channelId, onDeleteChannel listener)
채널 삭제 채널 ID를 입력받아, 해당 채널을 삭제합니다.
static bool isConnected()
소켓 연결 상태 확인 현재 소켓이 연결되어 있는지 확인합니다.
static void getBlockMembers(onGetBlockMembers listener)
차단된 사용자 목록 조회 차단된 사용자 목록을 조회합니다.
static void addDirectMessageListener(const char *uniqueKey, DirectMessageListener *listener)
1:1 메시지 리스너 등록 1:1 메시지를 수신하기 위한 리스너를 등록합니다.
static void getChannels(GetChannelsParams const *params, onGetChannels listener)
채널 목록 조회 접근 가능한 채널 목록을 조회합니다.
static void enterChannel(EnterChannelParams const ¶ms, onEnterChannel listener)
채널 입장 채널 ID를 입력받아, 채널에 접속합니다.
static void removeUserListener(const char *uniqueKey)
유저 리스너 제거 등록된 유저 이벤트 리스너를 제거합니다.
static void exitChannel(const char *channelId, onExitChannel listener)
채널 퇴장 채널 ID를 입력받아, 해당 채널에서 퇴장합니다.
static void removeConnectionListener(const char *uniqueKey)
연결 리스너 제거 등록된 연결 리스너를 제거합니다.
static void blockMember(int64_t blockPlayerId, onBlockMember listener)
사용자 차단 사용자 ID를 입력받아, 해당 사용자를 차단합니다.
static void sendMessageWithDirectSendMessageParams(DirectSendMessageParams const ¶ms, onDirectSendMessage listener)
1:1 메시지 전송 수신자 ID와 메시지를 입력받아, 해당 사용자에게 메시지를 전송합니다.
static void reconnect(onReconnect listener)
채팅 서버 재 연결 Hive 채팅 서버와 재연결 합니다.
static void sendMessageWithChannelSendMessageParams(ChannelSendMessageParams const ¶ms, onChannelSendMessage listener)
채널 메시지 전송 채널 ID와 메시지를 입력받아, 해당 채널에 메시지를 전송합니다.
SortType
채널 정렬 타입 정보
Definition: HIVE_Chat.h:647
static void addCustomDataListener(const char *uniqueKey, CustomDataListener *listener)
커스텀 데이터 리스너 등록
static void sendMessageWithChannelSendMessageParams(ChannelSendMessageParams const ¶ms)
채널 메시지 전송 채널 ID와 메시지를 입력받아, 해당 채널에 메시지를 전송합니다.
static void createChannel(CreateChannelParams const ¶ms, onCreateChannel listener)
채널 생성
static void getChannelInfo(const char *channelId, onGetChannelInfo listener)
채널 정보 조회 채널 ID를 입력받아, 해당 채널의 정보를 조회합니다.
static void removeDirectMessageListener(const char *uniqueKey)
1:1 메시지 리스너 제거 등록된 1:1 메시지 리스너를 제거합니다.