Commit e9e98975 authored by sheteng's avatar sheteng

历史消息记录

parent 4d734ba7
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\she\.android\avd\Nexus_S_API_30.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2021-12-16T03:22:22.823605200Z" />
</component>
</project>
\ No newline at end of file
...@@ -96,11 +96,6 @@ public class FirstFragment extends Fragment { ...@@ -96,11 +96,6 @@ public class FirstFragment extends Fragment {
} }
@Override
public void pushBlockByContact(Long userId) {
}
}); });
binding.getChatList.setOnClickListener(new View.OnClickListener() { binding.getChatList.setOnClickListener(new View.OnClickListener() {
...@@ -137,12 +132,7 @@ public class FirstFragment extends Fragment { ...@@ -137,12 +132,7 @@ public class FirstFragment extends Fragment {
binding.searchUser.setOnClickListener(new View.OnClickListener() { binding.searchUser.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
// CCIMClient.getInstance().searchUser(binding.userName.getText().toString(), new ResultEventCallback<List<User>>() { // CCIMClient.getInstance().searchUser(binding.userName.getText().toString(), new ResultEventCallback<List<User>>());
// @Override
// public void onSuccess(List<User> users) {
// refreshLogView(users.toString());
// }
// });
} }
}); });
......
...@@ -124,11 +124,6 @@ public class MainActivity2 extends AppCompatActivity { ...@@ -124,11 +124,6 @@ public class MainActivity2 extends AppCompatActivity {
alertDialog.show(); alertDialog.show();
} }
@Override
public void pushBlockByContact(Long userId) {
loginViewModel.getContactList();
}
}); });
} }
......
...@@ -206,7 +206,7 @@ public class ContactExpandableAdapter extends BaseExpandableListAdapter { ...@@ -206,7 +206,7 @@ public class ContactExpandableAdapter extends BaseExpandableListAdapter {
childrenHolder.contactId.setText("userid: " + dataList.get(childPosition).getContactUserId()); childrenHolder.contactId.setText("userid: " + dataList.get(childPosition).getContactUserId());
childrenHolder.contactName.setText("username: " + dataList.get(childPosition).getContactUserName()); childrenHolder.contactName.setText("username: " + dataList.get(childPosition).getContactUserName());
childrenHolder.netStatus.setText("netStatus: " + dataList.get(childPosition).getNetStatus().toString()); childrenHolder.netStatus.setText("netStatus: " + dataList.get(childPosition).getNetStatus().toString());
childrenHolder.status.setText("status: " + dataList.get(childPosition).getStatus()); // childrenHolder.status.setText("status: " + dataList.get(childPosition).getStatus());
convertView.setOnLongClickListener(new View.OnLongClickListener() { convertView.setOnLongClickListener(new View.OnLongClickListener() {
@Override @Override
public boolean onLongClick(View v) { public boolean onLongClick(View v) {
......
...@@ -72,7 +72,8 @@ public class PrivateMsgAdapter extends BaseAdapter { ...@@ -72,7 +72,8 @@ public class PrivateMsgAdapter extends BaseAdapter {
if (message.getSenderUserId() != null) { if (message.getSenderUserId() != null) {
mHolder.msg_content.setVisibility(View.VISIBLE); mHolder.msg_content.setVisibility(View.VISIBLE);
mHolder.msg_content_send.setVisibility(View.GONE); mHolder.msg_content_send.setVisibility(View.GONE);
} else if (message.getReciveUserId() != null) { }
else if (message.getReciveUserId() != null) {
mHolder.msg_content.setVisibility(View.GONE); mHolder.msg_content.setVisibility(View.GONE);
mHolder.msg_content_send.setVisibility(View.VISIBLE); mHolder.msg_content_send.setVisibility(View.VISIBLE);
} }
......
...@@ -97,6 +97,17 @@ public class LoginViewModel extends ViewModel { ...@@ -97,6 +97,17 @@ public class LoginViewModel extends ViewModel {
privateMsgList.postValue(value); privateMsgList.postValue(value);
} }
public void addPrivateMsg(List<MessageContent> res) {
List<MessageContent> value = privateMsgList.getValue();
if (value == null) {
value = new ArrayList<>();
}
for (MessageContent re : res) {
value.add(re);
}
privateMsgList.postValue(value);
}
public void addChannelMsg(MessageContent res) { public void addChannelMsg(MessageContent res) {
List<MessageContent> value = channelMsgList.getValue(); List<MessageContent> value = channelMsgList.getValue();
if (value == null) { if (value == null) {
...@@ -105,4 +116,15 @@ public class LoginViewModel extends ViewModel { ...@@ -105,4 +116,15 @@ public class LoginViewModel extends ViewModel {
value.add(res); value.add(res);
channelMsgList.postValue(value); channelMsgList.postValue(value);
} }
public void addChannelMsg(List<MessageContent> res) {
List<MessageContent> value = channelMsgList.getValue();
if (value == null) {
value = new ArrayList<>();
}
for (MessageContent re : res) {
value.add(re);
}
channelMsgList.postValue(value);
}
} }
\ No newline at end of file
...@@ -86,13 +86,14 @@ public class ConnectFragment extends Fragment { ...@@ -86,13 +86,14 @@ public class ConnectFragment extends Fragment {
@Override @Override
public boolean onTouch(View v, MotionEvent event) { public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) { if (event.getAction() == MotionEvent.ACTION_UP) {
CCIMClient.getInstance().stopAndSendAudioMessage(contact.getContactUserId(), contact.getContactUserName(), new ResultEventCallback<MessageContent>(){ CCIMClient.getInstance().stopAndSendAudioMessage(contact.getContactUserId(), contact.getContactUserName(), new ResultEventCallback<MessageContent>() {
@Override @Override
public void onSuccess(MessageContent message) { public void onSuccess(MessageContent message) {
binding.sendEdit.setText(""); binding.sendEdit.setText("");
loginViewModel.addPrivateMsg(message); loginViewModel.addPrivateMsg(message);
ToastUtil.show(getContext(), "send Success"); ToastUtil.show(getContext(), "send Success");
} }
@Override @Override
public void onFailed(int errorCode) { public void onFailed(int errorCode) {
ToastUtil.show(getContext(), "send onFailed :" + errorCode); ToastUtil.show(getContext(), "send onFailed :" + errorCode);
...@@ -117,6 +118,18 @@ public class ConnectFragment extends Fragment { ...@@ -117,6 +118,18 @@ public class ConnectFragment extends Fragment {
} }
}); });
CCIMClient.getInstance().getPrivateMessage(contact.getContactUserId(), new ResultEventCallback<List<MessageContent>>() {
@Override
public void onSuccess(List<MessageContent> messageContents) {
loginViewModel.addPrivateMsg(messageContents);
}
@Override
public void onFailed(int errorCode) {
}
});
return binding.getRoot(); return binding.getRoot();
} }
} }
\ No newline at end of file
...@@ -79,6 +79,18 @@ public class ConnectChannelFragment extends Fragment { ...@@ -79,6 +79,18 @@ public class ConnectChannelFragment extends Fragment {
} }
}); });
CCIMClient.getInstance().getChannelMessage(channelId, new ResultEventCallback<List<MessageContent>>() {
@Override
public void onSuccess(List<MessageContent> messageContents) {
loginViewModel.addChannelMsg(messageContents);
}
@Override
public void onFailed(int errorCode) {
}
});
binding.sendVoice.setOnTouchListener(new View.OnTouchListener() { binding.sendVoice.setOnTouchListener(new View.OnTouchListener() {
@Override @Override
public boolean onTouch(View v, MotionEvent event) { public boolean onTouch(View v, MotionEvent event) {
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:hint="ip" android:hint="ip"
android:text="106.15.237.67" android:text="10.4.5.134"
android:imeActionLabel="@string/action_sign_in_short" android:imeActionLabel="@string/action_sign_in_short"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:selectAllOnFocus="true" android:selectAllOnFocus="true"
......
...@@ -103,6 +103,7 @@ public class CCIMClient { ...@@ -103,6 +103,7 @@ public class CCIMClient {
resultCallback.onSocketConnection(); resultCallback.onSocketConnection();
isConnected = true; isConnected = true;
} }
channelManager.reConnection();
} }
@Override @Override
...@@ -240,7 +241,6 @@ public class CCIMClient { ...@@ -240,7 +241,6 @@ public class CCIMClient {
*/ */
public void addContact(Long userId, ResultEventCallback<Void> callback) { public void addContact(Long userId, ResultEventCallback<Void> callback) {
contactManager.addContact(userId, callback); contactManager.addContact(userId, callback);
} }
/** /**
...@@ -367,7 +367,7 @@ public class CCIMClient { ...@@ -367,7 +367,7 @@ public class CCIMClient {
return; return;
} }
if (!checkTimeInterval()) { if (! checkTimeInterval()) {
callback.onFailed(ErrorCode.SEND_MSG_INTERVAL); callback.onFailed(ErrorCode.SEND_MSG_INTERVAL);
return; return;
} }
...@@ -402,6 +402,20 @@ public class CCIMClient { ...@@ -402,6 +402,20 @@ public class CCIMClient {
messageManager.sendChannelMessage(content, channelId, MessageSpec.MessageType.MESSAGE_TYPE_TEXT, callback); messageManager.sendChannelMessage(content, channelId, MessageSpec.MessageType.MESSAGE_TYPE_TEXT, callback);
} }
/**
* 获取私聊消息
*/
public void getPrivateMessage(Long userId,ResultEventCallback<List<MessageContent>> callback){
messageManager.getPrivateMessage(userId,callback);
}
/**
* 获取频道消息
*/
public void getChannelMessage(Long channelId,ResultEventCallback<List<MessageContent>> callback){
messageManager.getChannelMessage(channelId,callback);
}
/** /**
* 推送私人消息成功ack * 推送私人消息成功ack
*/ */
......
...@@ -19,6 +19,4 @@ public interface OnPushMsgListener { ...@@ -19,6 +19,4 @@ public interface OnPushMsgListener {
void pushContactNewReq(User user); void pushContactNewReq(User user);
void pushBlockByContact(Long userId);
} }
...@@ -3,6 +3,7 @@ package com.ccwangluo.ccim.manage; ...@@ -3,6 +3,7 @@ package com.ccwangluo.ccim.manage;
import com.ccwangluo.ccim.CCIMClient; import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.listener.ResultEventCallback; import com.ccwangluo.ccim.listener.ResultEventCallback;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.logging.Logger; import java.util.logging.Logger;
...@@ -13,6 +14,7 @@ public class ChannelManager { ...@@ -13,6 +14,7 @@ public class ChannelManager {
private final Logger logger = Logger.getLogger(CCIMClient.class.getName()); private final Logger logger = Logger.getLogger(CCIMClient.class.getName());
private SocketManager socketManager; private SocketManager socketManager;
private CallBackManager<Chat.ChatResponseMessage> callBackManager; private CallBackManager<Chat.ChatResponseMessage> callBackManager;
private HashSet<Long> channelIds = new HashSet<>();
public ChannelManager(SocketManager socketManager, CallBackManager<Chat.ChatResponseMessage> callBackManager) { public ChannelManager(SocketManager socketManager, CallBackManager<Chat.ChatResponseMessage> callBackManager) {
this.socketManager = socketManager; this.socketManager = socketManager;
...@@ -41,6 +43,7 @@ public class ChannelManager { ...@@ -41,6 +43,7 @@ public class ChannelManager {
logger.info(String.valueOf(chatResponseMessage)); logger.info(String.valueOf(chatResponseMessage));
Channel.CreateChannelResponse createChannelRes = chatResponseMessage.getCreateChannelRes(); Channel.CreateChannelResponse createChannelRes = chatResponseMessage.getCreateChannelRes();
callback.onSuccess(createChannelRes.getChannelId()); callback.onSuccess(createChannelRes.getChannelId());
channelIds.add(createChannelRes.getChannelId());
} }
} }
...@@ -64,6 +67,7 @@ public class ChannelManager { ...@@ -64,6 +67,7 @@ public class ChannelManager {
@Override @Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) { public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
callback.onSuccess(null); callback.onSuccess(null);
channelIds.add(channelId);
} }
@Override @Override
...@@ -138,6 +142,7 @@ public class ChannelManager { ...@@ -138,6 +142,7 @@ public class ChannelManager {
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) { public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
logger.info(String.valueOf(chatResponseMessage)); logger.info(String.valueOf(chatResponseMessage));
callback.onSuccess(null); callback.onSuccess(null);
channelIds.remove(channelId);
} }
@Override @Override
...@@ -147,4 +152,20 @@ public class ChannelManager { ...@@ -147,4 +152,20 @@ public class ChannelManager {
}); });
} }
public void reConnection() {
for (Long channelId : channelIds) {
joinChannel(channelId, new ResultEventCallback<Void>() {
@Override
public void onSuccess(Void unused) {
}
@Override
public void onFailed(int errorCode) {
}
});
}
channelIds.clear();
}
} }
...@@ -11,12 +11,12 @@ import com.ccwangluo.ccim.modle.Dialog; ...@@ -11,12 +11,12 @@ import com.ccwangluo.ccim.modle.Dialog;
import com.ccwangluo.ccim.modle.NetStatus; import com.ccwangluo.ccim.modle.NetStatus;
import com.ccwangluo.ccim.modle.PullContactsRes; import com.ccwangluo.ccim.modle.PullContactsRes;
import com.ccwangluo.ccim.modle.SearchRes; import com.ccwangluo.ccim.modle.SearchRes;
import com.ccwangluo.ccim.modle.Status;
import com.ccwangluo.ccim.modle.User; import com.ccwangluo.ccim.modle.User;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.protobuf.util.JsonFormat; import com.google.protobuf.util.JsonFormat;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
...@@ -32,6 +32,7 @@ public class ContactManager { ...@@ -32,6 +32,7 @@ public class ContactManager {
private final HashMap<Long, Contact> contacts = new HashMap<>(); //联系人列表 private final HashMap<Long, Contact> contacts = new HashMap<>(); //联系人列表
private final HashMap<Long, ContactGroup> contactGroups = new HashMap<>(); //群组列表 private final HashMap<Long, ContactGroup> contactGroups = new HashMap<>(); //群组列表
private final HashMap<Long, Dialog> dialogs = new HashMap<>(); //对话列表 private final HashMap<Long, Dialog> dialogs = new HashMap<>(); //对话列表
private final HashSet<Long> blocklist = new HashSet<Long>(); //对话列表
public ContactManager(SocketManager socketManager, CallBackManager<Chat.ChatResponseMessage> callBackManager) { public ContactManager(SocketManager socketManager, CallBackManager<Chat.ChatResponseMessage> callBackManager) {
this.socketManager = socketManager; this.socketManager = socketManager;
...@@ -44,7 +45,7 @@ public class ContactManager { ...@@ -44,7 +45,7 @@ public class ContactManager {
*/ */
public void getContactList(ResultEventCallback<PullContactsRes> resultEventCallback, boolean isClearCache) { public void getContactList(ResultEventCallback<PullContactsRes> resultEventCallback, boolean isClearCache) {
if (!isClearCache && (contacts.size() > 0 || contactGroups.size() > 0 || dialogs.size() > 0)) { if (!isClearCache && (contacts.size() > 0 || contactGroups.size() > 0 || dialogs.size() > 0)) {
PullContactsRes pullContactsRes = new PullContactsRes(contactGroups.values(),contacts.values(),dialogs.values()); PullContactsRes pullContactsRes = new PullContactsRes(contactGroups.values(),contacts.values(),dialogs.values(),blocklist);
resultEventCallback.onSuccess(pullContactsRes); resultEventCallback.onSuccess(pullContactsRes);
return; return;
} }
...@@ -63,6 +64,7 @@ public class ContactManager { ...@@ -63,6 +64,7 @@ public class ContactManager {
contacts.clear(); contacts.clear();
contactGroups.clear(); contactGroups.clear();
dialogs.clear(); dialogs.clear();
blocklist.clear();
if (pullContactsRes1.getContacts() != null) { if (pullContactsRes1.getContacts() != null) {
for (Contact contact : pullContactsRes1.getContacts()) { for (Contact contact : pullContactsRes1.getContacts()) {
contacts.put(contact.getContactUserId(), contact); contacts.put(contact.getContactUserId(), contact);
...@@ -80,7 +82,10 @@ public class ContactManager { ...@@ -80,7 +82,10 @@ public class ContactManager {
} }
} }
resultEventCallback.onSuccess(new PullContactsRes(contactGroups.values(),contacts.values(),dialogs.values())); if (pullContactsRes1.getBlocklist() != null) {
blocklist.addAll(pullContactsRes1.getBlocklist());
}
resultEventCallback.onSuccess(new PullContactsRes(contactGroups.values(),contacts.values(),dialogs.values(),blocklist));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
...@@ -350,10 +355,7 @@ public class ContactManager { ...@@ -350,10 +355,7 @@ public class ContactManager {
callBackManager.addCallBack(id, new ResultEventCallback<Chat.ChatResponseMessage>() { callBackManager.addCallBack(id, new ResultEventCallback<Chat.ChatResponseMessage>() {
@Override @Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) { public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
Contact contact = contacts.get(userId); blocklist.add(userId);
if (contact != null) {
contact.setStatus(Status.CONTACT_STATUS_BLACK_LIST);
}
callback.onSuccess(null); callback.onSuccess(null);
} }
......
...@@ -8,9 +8,12 @@ import com.ccwangluo.ccim.CCIMClient; ...@@ -8,9 +8,12 @@ import com.ccwangluo.ccim.CCIMClient;
import com.ccwangluo.ccim.database.AppDatabase; import com.ccwangluo.ccim.database.AppDatabase;
import com.ccwangluo.ccim.listener.ResultEventCallback; import com.ccwangluo.ccim.listener.ResultEventCallback;
import com.ccwangluo.ccim.modle.MessageContent; import com.ccwangluo.ccim.modle.MessageContent;
import com.ccwangluo.ccim.modle.PullMessageRes;
import com.ccwangluo.ccim.util.ErrorCode; import com.ccwangluo.ccim.util.ErrorCode;
import com.ccwangluo.ccim.util.FileUtils; import com.ccwangluo.ccim.util.FileUtils;
import com.ccwangluo.ccim.util.MediaHelper; import com.ccwangluo.ccim.util.MediaHelper;
import com.google.gson.Gson;
import com.google.protobuf.util.JsonFormat;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
...@@ -220,7 +223,94 @@ public class MessageManager { ...@@ -220,7 +223,94 @@ public class MessageManager {
} }
/**
* 获取私聊消息记录
*
* @param contactId
* @param callback
*/
public void getPrivateMessage(Long contactId, ResultEventCallback<List<MessageContent>> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Message.PullPrivateMessageRequest build = Message.PullPrivateMessageRequest.newBuilder().setUserId(contactId).build();
builder.setPullPrivateMsgReq(build);
int id = socketManager.sendRequest(builder);
callBackManager.addCallBack(id, new ResultEventCallback<Chat.ChatResponseMessage>() {
@Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
if (chatResponseMessage.hasPullPrivateMsgRes()) {
Gson gson = new Gson();
Message.PullPrivateMessageResponse pullPrivateMsgRes = chatResponseMessage.getPullPrivateMsgRes();
try {
String print = JsonFormat.printer().print(pullPrivateMsgRes);
PullMessageRes pullPrivateMsgRes1 = gson.fromJson(print, PullMessageRes.class);
List<MessageContent> message = pullPrivateMsgRes1.getMessage();
for (MessageContent messageContent : message) {
if (messageContent.getSenderUserId().equals(userId)) {
messageContent.setReciveUserId(contactId);
} else {
messageContent.setReciveUserId(userId);
}
}
callback.onSuccess(message);
pushNewMessageList(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onFailed(int errorCode) {
callback.onFailed(errorCode);
}
});
}
/**
* @param channelId
* @param callback
*/
public void getChannelMessage(Long channelId, ResultEventCallback<List<MessageContent>> callback) {
Chat.ChatRequestMessage.Builder builder = Chat.ChatRequestMessage.newBuilder();
Message.PullChannelMessageRequest build = Message.PullChannelMessageRequest.newBuilder().setChannelId(channelId).build();
builder.setPullChannelMsgReq(build);
int id = socketManager.sendRequest(builder);
callBackManager.addCallBack(id, new ResultEventCallback<Chat.ChatResponseMessage>() {
@Override
public void onSuccess(Chat.ChatResponseMessage chatResponseMessage) {
if (chatResponseMessage.hasPullChannelMsgRes()) {
Gson gson = new Gson();
Message.PullChannelMessageResponse pullChannelMsgRes = chatResponseMessage.getPullChannelMsgRes();
try {
String print = JsonFormat.printer().print(pullChannelMsgRes);
PullMessageRes pullPrivateMsgRes1 = gson.fromJson(print, PullMessageRes.class);
List<MessageContent> message = pullPrivateMsgRes1.getMessage();
for (MessageContent messageContent : message) {
messageContent.setChannelId(channelId);
}
callback.onSuccess(message);
pushNewMessageList(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onFailed(int errorCode) {
callback.onFailed(errorCode);
}
});
}
public void pushNewMessage(MessageContent messageContent) { public void pushNewMessage(MessageContent messageContent) {
executor.execute(() -> db.messageDao().insert(messageContent)); executor.execute(() -> db.messageDao().insert(messageContent));
} }
private void pushNewMessageList(List<MessageContent> messageContents) {
executor.execute(() -> db.messageDao().insertList(messageContents));
}
} }
...@@ -9,7 +9,7 @@ public class Contact implements Serializable { ...@@ -9,7 +9,7 @@ public class Contact implements Serializable {
private NetStatus netStatus = NetStatus.NET_STATUS_ONLINE; private NetStatus netStatus = NetStatus.NET_STATUS_ONLINE;
private String extData; private String extData;
private Long contactGroupId = 0L; private Long contactGroupId = 0L;
private Status status = Status.CONTACT_STATUS_NORMAL;
public Long getContactUserId() { public Long getContactUserId() {
return contactUserId; return contactUserId;
...@@ -59,12 +59,5 @@ public class Contact implements Serializable { ...@@ -59,12 +59,5 @@ public class Contact implements Serializable {
this.contactGroupId = contactGroupId; this.contactGroupId = contactGroupId;
} }
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
} }
...@@ -3,8 +3,7 @@ package com.ccwangluo.ccim.modle; ...@@ -3,8 +3,7 @@ package com.ccwangluo.ccim.modle;
import androidx.room.Entity; import androidx.room.Entity;
import androidx.room.Index; import androidx.room.Index;
@Entity(primaryKeys = {"msgId"},indices = {@Index("msgId"), @Entity(primaryKeys = {"msgId"},indices = {@Index(value = {"msgId"},unique = true)})
@Index(value = {"senderUserId","reciveUserId"})})
public class MessageContent { public class MessageContent {
private Long msgId; private Long msgId;
......
...@@ -7,11 +7,21 @@ public class PullContactsRes { ...@@ -7,11 +7,21 @@ public class PullContactsRes {
private Collection<ContactGroup> contactGroups; private Collection<ContactGroup> contactGroups;
private Collection<Contact> contacts; private Collection<Contact> contacts;
private Collection<Dialog> dialogs; private Collection<Dialog> dialogs;
private Collection<Long> blocklist;
public PullContactsRes(Collection<ContactGroup> contactGroups, Collection<Contact> contacts, Collection<Dialog> dialogs) { public Collection<Long> getBlocklist() {
return blocklist;
}
public void setBlocklist(Collection<Long> blocklist) {
this.blocklist = blocklist;
}
public PullContactsRes(Collection<ContactGroup> contactGroups, Collection<Contact> contacts, Collection<Dialog> dialogs, Collection<Long> blocklist) {
this.contactGroups = contactGroups; this.contactGroups = contactGroups;
this.contacts = contacts; this.contacts = contacts;
this.dialogs = dialogs; this.dialogs = dialogs;
this.blocklist = blocklist;
} }
public Collection<ContactGroup> getContactGroups() { public Collection<ContactGroup> getContactGroups() {
......
package com.ccwangluo.ccim.modle;
import java.util.List;
public class PullMessageRes {
private List<MessageContent> message;
public List<MessageContent> getMessage() {
return message;
}
public void setMessage(List<MessageContent> message) {
this.message = message;
}
}
...@@ -41,6 +41,9 @@ message ChatRequestMessage { ...@@ -41,6 +41,9 @@ message ChatRequestMessage {
PushPrivateMessageAckRequest push_private_msg_ack_req = 61; // 推送私人消息成功ack PushPrivateMessageAckRequest push_private_msg_ack_req = 61; // 推送私人消息成功ack
PushChannelMessageAckRequest push_channel_msg_ack_req = 62; // 推送频道消息ack PushChannelMessageAckRequest push_channel_msg_ack_req = 62; // 推送频道消息ack
PullPrivateMessageRequest pull_private_msg_req = 81; // 拉取私聊消息
PullChannelMessageRequest pull_channel_msg_req = 82; // 拉取频道消息
HeartbeatRequest heartbeat_req = 100; // 作用于登录返回的心跳间隔heartbeat_interval HeartbeatRequest heartbeat_req = 100; // 作用于登录返回的心跳间隔heartbeat_interval
ConnectionStateAckRequest connection_state_ack_req = 101; // 服务端主动返回一个ConnectionStateResponse时客户端必须返回ConnectionStateAckRequest ConnectionStateAckRequest connection_state_ack_req = 101; // 服务端主动返回一个ConnectionStateResponse时客户端必须返回ConnectionStateAckRequest
} }
...@@ -84,6 +87,9 @@ message ChatResponseMessage { ...@@ -84,6 +87,9 @@ message ChatResponseMessage {
PushContactNewReqResponse push_contact_new_req_res = 74; // 推送新的好友申请 PushContactNewReqResponse push_contact_new_req_res = 74; // 推送新的好友申请
PushUserDeletedResponse push_user_deleted_res = 76; // 推送与自己有关系(对话过的陌生人或好友)的用户已删除 PushUserDeletedResponse push_user_deleted_res = 76; // 推送与自己有关系(对话过的陌生人或好友)的用户已删除
PullPrivateMessageResponse pull_private_msg_res = 81; // 拉取私聊消息
PullChannelMessageResponse pull_channel_msg_res = 82; // 拉取频道消息
HeartbeatResponse heartbeat_res = 100; HeartbeatResponse heartbeat_res = 100;
ConnectionStateResponse connection_state_res = 101; ConnectionStateResponse connection_state_res = 101;
} }
......
...@@ -47,3 +47,19 @@ message PullOfflineMessageResponse { ...@@ -47,3 +47,19 @@ message PullOfflineMessageResponse {
} }
repeated OfflineMessage offline_msgs = 1; repeated OfflineMessage offline_msgs = 1;
} }
message PullPrivateMessageRequest {
int64 user_id = 1;
}
message PullPrivateMessageResponse {
repeated ChatMessage message = 1;
}
message PullChannelMessageRequest {
int64 channel_id = 1;
}
message PullChannelMessageResponse {
repeated ChatMessage message = 1;
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment