Skip to content

Commit f51a247

Browse files
committed
解决由于编码导致自己消息不能区分问题
1 parent 13b8289 commit f51a247

File tree

7 files changed

+38
-5
lines changed

7 files changed

+38
-5
lines changed

conf/nbs.db

0 Bytes
Binary file not shown.

src/main/java/io/nbs/client/Launcher.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import io.nbs.client.cnsts.ColorCnst;
88
import io.nbs.client.cnsts.OSUtil;
99
import io.nbs.commons.helper.ConfigurationHelper;
10+
import io.nbs.commons.utils.Base64CodecUtil;
1011
import io.nbs.commons.utils.TimeUtil;
1112
import io.nbs.sdk.beans.PeerInfo;
1213
import io.nbs.client.ui.frames.FailFrame;
@@ -229,6 +230,8 @@ private boolean needInitConfig(IPFS ipfs) throws IOException {
229230
currentPeer = new PeerInfo();
230231
currentPeer.setId(peerid);
231232
currentPeer.setNick(nick);
233+
//
234+
fromid = Base64CodecUtil.base64From(fromid);
232235
currentPeer.setFrom(fromid);
233236

234237
Object avatar = cfg.get(ConfigurationHelper.JSON_AVATAR_KEY);

src/main/java/io/nbs/client/adapter/ReceiverMessageAdapter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import io.nbs.sdk.beans.PeerInfo;
2020
import org.apache.commons.lang3.StringUtils;
2121
import org.apache.ibatis.session.SqlSession;
22+
import org.slf4j.Logger;
23+
import org.slf4j.LoggerFactory;
2224

2325
import java.util.List;
2426

@@ -31,6 +33,7 @@
3133
* All rights reserved.
3234
*/
3335
public class ReceiverMessageAdapter implements IPFSSubscribeListener {
36+
private static Logger logger = LoggerFactory.getLogger(ReceiverMessageAdapter.class);
3437

3538
private List<MessageItem> items;
3639
private NbsListView listView;

src/main/java/io/nbs/client/services/IpfsMessageReceiver.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ private void proccessMessage(List<String> jsonMessages){
116116
logger.warn("消息JSON :{}解析失败,忽略.可能原因:{}",json,e.getMessage());
117117
continue;
118118
} catch (UnsupportedEncodingException e) {
119-
120119
logger.warn("消息JSON :{}解析失败,忽略.可能原因:{}",json,e.getMessage());
121120
continue;
122121
}

src/main/java/io/nbs/client/ui/frames/InitialFrame.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.nbs.biz.PeersOperatorService;
44
import com.nbs.biz.service.TableService;
5+
import io.ipfs.multibase.Base16;
56
import io.nbs.client.ui.components.VerticalFlowLayout;
67
import io.nbs.client.listener.AbstractMouseListener;
78
import io.ipfs.api.IPFS;
@@ -16,6 +17,7 @@
1617
import io.nbs.client.ui.filters.ImagesFiltFilter;
1718
import io.nbs.client.helper.AvatarImageHandler;
1819
import io.nbs.commons.helper.ConfigurationHelper;
20+
import io.nbs.commons.utils.Base64CodecUtil;
1921
import io.nbs.sdk.beans.PeerInfo;
2022
import io.nbs.client.ui.components.GBC;
2123
import io.nbs.client.ui.components.NBSButton;
@@ -452,14 +454,17 @@ private boolean saveIpfsConfig(String originAvatarName){
452454
try {
453455
String nick = IPMParser.urlEncode(tempInfo.getNick());
454456
ipfs.config.set(ConfigurationHelper.JSON_NICKNAME_KEY,nick);
455-
String enFromId =IPMParser.urlEncode(tempInfo.getFrom());
456-
ipfs.config.set(ConfigurationHelper.JSON_CFG_FROMID_KEY,enFromId);
457+
//String enFromId =IPMParser.urlEncode(tempInfo.getFrom());
458+
ipfs.config.set(ConfigurationHelper.JSON_CFG_FROMID_KEY,tempInfo.getFrom());
457459
ipfs.config.set(ConfigurationHelper.JSON_AVATAR_KEY,tempInfo.getAvatar());
458460
ipfs.config.set(ConfigurationHelper.JSON_AVATAR_SUFFIX_KEY,tempInfo.getAvatarSuffix());
459461
if(StringUtils.isNotBlank(originAvatarName)){
460462
String enFileName = IPMParser.urlEncode(originAvatarName);
461463
ipfs.config.set(ConfigurationHelper.JSON_AVATAR_NAME_KEY,enFileName);
462464
}
465+
Object oFrom = ipfs.config.get(ConfigurationHelper.JSON_CFG_FROMID_KEY) ;
466+
logger.info("peer from={},cfgFrom={}",tempInfo.getFrom(),oFrom.toString());
467+
463468
return true;
464469
} catch (IOException e) {
465470
e.printStackTrace();
@@ -512,8 +517,14 @@ private void getFromid(PeerInfo info){
512517

513518
List<Map<String, Object>> lst = subs.limit(1).collect(Collectors.toList());
514519
Object fromidObj = JSONParser.getValue(lst.get(0),"from");
520+
515521
if(fromidObj!=null){
522+
516523
String fromid = (String)fromidObj;
524+
String ss= Base16.encode(fromid.getBytes());
525+
logger.info("base16={}",ss);
526+
logger.info("tostring>>{},String>>{},decode>>{}",fromidObj.toString(),fromid,IPMParser.urlDecode(fromid));
527+
fromid = Base64CodecUtil.base64From(fromid);
517528
info.setFrom(fromid);
518529
}
519530
} catch (Exception e) {

src/main/java/io/nbs/commons/utils/Base64CodecUtil.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,22 @@
1515
public class Base64CodecUtil {
1616
private static final Base64 base64 = new Base64();
1717

18+
/**
19+
*
20+
* @param from
21+
* @return
22+
*/
23+
public static String base64From(String from){
24+
if(from==null||from.length()==0)return from;
25+
try {
26+
byte[] encodeByte = from.getBytes(CharEncoding.UTF_8);
27+
return base64.encodeToString(encodeByte);
28+
} catch (UnsupportedEncodingException e) {
29+
e.printStackTrace();
30+
}
31+
return null;
32+
}
33+
1834
/**
1935
*
2036
* @param origin

src/main/java/io/nbs/sdk/prot/IPMParser.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import io.nbs.commons.utils.UUIDGenerator;
77
import io.nbs.sdk.beans.*;
88
import org.apache.commons.lang3.StringUtils;
9-
import org.springframework.util.Base64Utils;
109

1110
import java.io.UnsupportedEncodingException;
1211
import java.net.URLDecoder;
@@ -136,7 +135,9 @@ public static String encode(Object data,IPMTypes types) throws IllegalIPFSMessag
136135
public static StandardIPFSMessage decodeStandardIPFSMessage(String json) throws IllegalIPFSMessageException, UnsupportedEncodingException {
137136
if(json==null||json.length()==0)throw new IllegalIPFSMessageException("json 数据为null或空串.");
138137
StandardIPFSMessage simsg = JSON.parseObject(json,StandardIPFSMessage.class);
139-
String fromid = URLDecoder.decode(simsg.getFrom(),DEFAULT_ENCODING);
138+
139+
String fromid = Base64CodecUtil.base64From(simsg.getFrom());
140+
//URLDecoder.decode(simsg.getFrom(),DEFAULT_ENCODING);
140141
simsg.setFrom(fromid);
141142
String endata = simsg.getData();
142143
String deData = Base64CodecUtil.decode(endata);

0 commit comments

Comments
 (0)