Skip to content

Commit

Permalink
v5.0.1发布,开放了iOS端TCP版SDK的两个参数设置。
Browse files Browse the repository at this point in the history
  • Loading branch information
Jack Jiang committed Sep 22, 2020
1 parent ecda60f commit ef516ac
Show file tree
Hide file tree
Showing 15 changed files with 123 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ public class ServerLauncherImpl extends ServerLauncher
ServerLauncher.bridgeEnabled = false;
// TODO 跨服桥接器MQ的URI(本参数只在ServerLauncher.bridgeEnabled为true时有意义)
// BridgeProcessor.IMMQ_URI = "amqp://js:19844713@192.168.0.190";

// 设置最大TCP帧内容长度(不设置则默认最大是 6 * 1024字节)
// GatewayTCP.TCP_FRAME_MAX_BODY_LENGTH = 60 * 1024;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import net.x52im.mobileimsdk.android.ClientCoreSDK;
import net.x52im.mobileimsdk.android.conf.ConfigEntity;
import net.x52im.mobileimsdk.android.core.LocalSocketProvider;
import net.x52im.mobileimsdk.android.demo.event.ChatBaseEventImpl;
import net.x52im.mobileimsdk.android.demo.event.ChatMessageEventImpl;
import net.x52im.mobileimsdk.android.demo.event.MessageQoSEventImpl;
Expand Down Expand Up @@ -77,7 +78,10 @@ public void initMobileIMSDK()

// MobileIMSDK核心IM框架的敏感度模式设置
// ConfigEntity.setSenseMode(SenseMode.MODE_15S);


// 设置最大TCP帧内容长度(不设置则默认最大是 6 * 1024字节)
// LocalSocketProvider.TCP_FRAME_MAX_BODY_LENGTH = 60 * 1024;

// 开启/关闭DEBUG信息输出
// ClientCoreSDK.DEBUG = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
EA33F7C724B5B84A00E81885 /* ProtocalFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProtocalFactory.h; sourceTree = "<group>"; };
EA33F7C824B5B84A00E81885 /* CharsetHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CharsetHelper.h; sourceTree = "<group>"; };
EA3969C71A0DEFA40099FBF9 /* green_light@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "green_light@2x.png"; sourceTree = "<group>"; };
EA3C6FA02519E33700585710 /* TCPFrameCodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCPFrameCodec.h; sourceTree = "<group>"; };
EA48F5401BEF816C007AE6A1 /* UIViewController+Ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIViewController+Ext.h"; path = "MobileIMSDK4iDemo/UIViewController+Ext.h"; sourceTree = "<group>"; };
EA48F5411BEF816C007AE6A1 /* UIViewController+Ext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+Ext.m"; path = "MobileIMSDK4iDemo/UIViewController+Ext.m"; sourceTree = "<group>"; };
EA48F5441BEF8FE0007AE6A1 /* IMClientManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IMClientManager.h; path = MobileIMSDK4iDemo/IMClientManager.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -165,6 +166,7 @@
EA33F7AE24B5B84A00E81885 /* include */ = {
isa = PBXGroup;
children = (
EA3C6FA02519E33700585710 /* TCPFrameCodec.h */,
EADF349124F6B13C00AF7862 /* ChatMessageEvent.h */,
EA33F7B824B5B84A00E81885 /* AutoReLoginDaemon.h */,
EA33F7C824B5B84A00E81885 /* CharsetHelper.h */,
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#import "IMClientManager.h"
#import "ClientCoreSDK.h"
#import "ConfigEntity.h"
#import "TCPFrameCodec.h"


///////////////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -87,6 +88,9 @@ - (void)initMobileIMSDK
// RainbowCore核心IM框架的敏感度模式设置
// [ConfigEntity setSenseMode:SenseMode10S];

// 设置最大TCP帧内容长度(不设置则默认最大是 6 * 1024字节)
// [TCPFrameCodec setTCP_FRAME_MAX_BODY_LENGTH:60 * 1024];

// 开启DEBUG信息输出
[ClientCoreSDK setENABLED_DEBUG:YES];

Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// ----------------------------------------------------------------------
// Copyright (C) 2020 即时通讯网(52im.net) & Jack Jiang.
// The MobileIMSDK_TCP (MobileIMSDK v5.x TCP版) Project.
// All rights reserved.
//
// > Github地址: https://github.com/JackJiang2011/MobileIMSDK
// > 文档地址: http://www.52im.net/forum-89-1.html
// > 技术社区: http://www.52im.net/
// > 技术交流群: 320837163 (http://www.52im.net/topic-qqgroup.html)
// > 作者公众号: “即时通讯技术圈】”,欢迎关注!
// > 联系作者: http://www.52im.net/thread-2792-1-1.html
//
// "即时通讯网(52im.net) - 即时通讯开发者社区!" 推荐开源工程。
// ----------------------------------------------------------------------

#import <Foundation/Foundation.h>

@interface TCPFrameCodec : NSObject

+ (NSData *)encodeFrame:(NSData *)bodyDataOfFrame;
+ (int)decodeBodyLength:(NSData *)headerDataOfFrame;

+ (void)setTCP_FRAME_FIXED_HEADER_LENGTH:(int)l;
+ (int)getTCP_FRAME_FIXED_HEADER_LENGTH;

+ (void)setTCP_FRAME_MAX_BODY_LENGTH:(int)l;
+ (int)getTCP_FRAME_MAX_BODY_LENGTH;


@end
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import net.x52im.mobileimsdk.java.ClientCoreSDK;
import net.x52im.mobileimsdk.java.conf.ConfigEntity;
import net.x52im.mobileimsdk.java.core.LocalSocketProvider;
import net.x52im.mobileimsdk.java.demo.event.ChatBaseEventImpl;
import net.x52im.mobileimsdk.java.demo.event.ChatMessageEventImpl;
import net.x52im.mobileimsdk.java.demo.event.MessageQoSEventImpl;
Expand Down Expand Up @@ -64,9 +65,12 @@ public void initMobileIMSDK()

// MobileIMSDK核心IM框架的敏感度模式设置
// ConfigEntity.setSenseMode(SenseMode.MODE_10S);

// 设置最大TCP帧内容长度(不设置则默认最大是 6 * 1024字节)
// LocalSocketProvider.TCP_FRAME_MAX_BODY_LENGTH = 60 * 1024;

// 开启/关闭DEBUG信息输出
// ClientCoreSDK.DEBUG = false;
ClientCoreSDK.DEBUG = true;

// 设置事件回调
baseEventListener = new ChatBaseEventImpl();
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// ----------------------------------------------------------------------
// Copyright (C) 2020 即时通讯网(52im.net) & Jack Jiang.
// The MobileIMSDK_TCP (MobileIMSDK v5.x TCP版) Project.
// All rights reserved.
//
// > Github地址: https://github.com/JackJiang2011/MobileIMSDK
// > 文档地址: http://www.52im.net/forum-89-1.html
// > 技术社区: http://www.52im.net/
// > 技术交流群: 320837163 (http://www.52im.net/topic-qqgroup.html)
// > 作者公众号: “即时通讯技术圈】”,欢迎关注!
// > 联系作者: http://www.52im.net/thread-2792-1-1.html
//
// "即时通讯网(52im.net) - 即时通讯开发者社区!" 推荐开源工程。
// ----------------------------------------------------------------------

#import <Foundation/Foundation.h>

@interface TCPFrameCodec : NSObject

+ (NSData *)encodeFrame:(NSData *)bodyDataOfFrame;
+ (int)decodeBodyLength:(NSData *)headerDataOfFrame;

+ (void)setTCP_FRAME_FIXED_HEADER_LENGTH:(int)l;
+ (int)getTCP_FRAME_FIXED_HEADER_LENGTH;

+ (void)setTCP_FRAME_MAX_BODY_LENGTH:(int)l;
+ (int)getTCP_FRAME_MAX_BODY_LENGTH;


@end
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
EAB3051B24ACE1B100C78B0E /* MBGCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = EAB3051924ACE1B100C78B0E /* MBGCDAsyncSocket.m */; };
EAB3051C24ACE1B100C78B0E /* MBGCDAsyncSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = EAB3051A24ACE1B100C78B0E /* MBGCDAsyncSocket.h */; };
EAB3052024ACE2B100C78B0E /* TCPFrameCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = EAB3051E24ACE2B100C78B0E /* TCPFrameCodec.m */; };
EAB3052124ACE2B100C78B0E /* TCPFrameCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = EAB3051F24ACE2B100C78B0E /* TCPFrameCodec.h */; };
EAB3052124ACE2B100C78B0E /* TCPFrameCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = EAB3051F24ACE2B100C78B0E /* TCPFrameCodec.h */; settings = {ATTRIBUTES = (Public, ); }; };
EACBFFD41BA07F5400C070F1 /* NSMutableDictionary+Ext.h in Headers */ = {isa = PBXBuildFile; fileRef = EADDE60D1A0A1261002FFB8E /* NSMutableDictionary+Ext.h */; settings = {ATTRIBUTES = (Public, ); }; };
EADDE63A1A0A1261002FFB8E /* ClientCoreSDK.m in Sources */ = {isa = PBXBuildFile; fileRef = EADDE5F51A0A1261002FFB8E /* ClientCoreSDK.m */; };
EADDE63B1A0A1261002FFB8E /* ConfigEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = EADDE5F71A0A1261002FFB8E /* ConfigEntity.m */; };
Expand Down Expand Up @@ -371,7 +371,6 @@
EADDE65F1A0A139C002FFB8E /* QoS4ReciveDaemon.h in Headers */,
EADDE6601A0A139C002FFB8E /* QoS4SendDaemon.h in Headers */,
EADDE6611A0A139C002FFB8E /* CompletionDefine.h in Headers */,
EAB3052124ACE2B100C78B0E /* TCPFrameCodec.h in Headers */,
EADDE6641A0A139C002FFB8E /* CharsetHelper.h in Headers */,
EADDE6651A0A139C002FFB8E /* ProtocalFactory.h in Headers */,
EADDE6661A0A139C002FFB8E /* ErrorCode.h in Headers */,
Expand All @@ -384,6 +383,7 @@
EADDE66C1A0A139C002FFB8E /* Protocal.h in Headers */,
EADDE66D1A0A139C002FFB8E /* ProtocalType.h in Headers */,
EADDE66E1A0A139C002FFB8E /* ToolKits.h in Headers */,
EAB3052124ACE2B100C78B0E /* TCPFrameCodec.h in Headers */,
EACBFFD41BA07F5400C070F1 /* NSMutableDictionary+Ext.h in Headers */,
EADDE66F1A0A139C002FFB8E /* TCPUtils.h in Headers */,
);
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@

#import <Foundation/Foundation.h>

#define TCP_FRAME_FIXED_HEADER_LENGTH 4 // 4 bytes
#define TCP_FRAME_MAX_BODY_LENGTH 6144 // 6K bytes

@interface TCPFrameCodec : NSObject

+ (NSData *)encodeFrame:(NSData *)bodyDataOfFrame;
+ (int)decodeBodyLength:(NSData *)headerDataOfFrame;

+ (void)setTCP_FRAME_FIXED_HEADER_LENGTH:(int)l;
+ (int)getTCP_FRAME_FIXED_HEADER_LENGTH;

+ (void)setTCP_FRAME_MAX_BODY_LENGTH:(int)l;
+ (int)getTCP_FRAME_MAX_BODY_LENGTH;


@end
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,19 @@

#import "TCPFrameCodec.h"


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#pragma mark - 静态全局类变量
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

static int TCP_FRAME_FIXED_HEADER_LENGTH = 4; // 4 bytes
static int TCP_FRAME_MAX_BODY_LENGTH = 6 * 1024; // 6K bytes


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#pragma mark - 静态公开方法
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

@implementation TCPFrameCodec

+ (NSData *)encodeFrame:(NSData *)bodyDataOfFrame
Expand Down Expand Up @@ -45,4 +58,24 @@ + (int)decodeBodyLength:(NSData *)headerDataOfFrame
return bodyLength;
}

+ (void)setTCP_FRAME_FIXED_HEADER_LENGTH:(int)l
{
TCP_FRAME_FIXED_HEADER_LENGTH = l;
}

+ (int)getTCP_FRAME_FIXED_HEADER_LENGTH
{
return TCP_FRAME_FIXED_HEADER_LENGTH;
}

+ (void)setTCP_FRAME_MAX_BODY_LENGTH:(int)l
{
TCP_FRAME_MAX_BODY_LENGTH = l;
}
+ (int)getTCP_FRAME_MAX_BODY_LENGTH
{
return TCP_FRAME_MAX_BODY_LENGTH;
}


@end
Original file line number Diff line number Diff line change
Expand Up @@ -164,10 +164,10 @@ - (void)socket:(MBGCDAsyncSocket *)socket didReadData:(NSData *)data withTag:(lo
if (tag == TCP_TAG_FIXED_LENGTH_HEADER)
{
int bodyLength = [TCPFrameCodec decodeBodyLength:data];
if(bodyLength <= 0 || bodyLength > TCP_FRAME_MAX_BODY_LENGTH)
if(bodyLength <= 0 || bodyLength > [TCPFrameCodec getTCP_FRAME_MAX_BODY_LENGTH])
{
if([ClientCoreSDK isENABLED_DEBUG])
NSLog(@"【IMCORE-TCP-SOCKET】【CAUTION】【原始帧-头】中实际解析出的bodyLength=%d (而SDK中最大允许长度为>0 && <= %d),它是不合法的,将断开本次scoket连接!", bodyLength, TCP_FRAME_MAX_BODY_LENGTH);
NSLog(@"【IMCORE-TCP-SOCKET】【CAUTION】【原始帧-头】中实际解析出的bodyLength=%d (而SDK中最大允许长度为>0 && <= %d),它是不合法的,将断开本次scoket连接!", bodyLength, [TCPFrameCodec getTCP_FRAME_MAX_BODY_LENGTH]);
[socket disconnect];
}
else
Expand All @@ -184,7 +184,7 @@ - (void)socket:(MBGCDAsyncSocket *)socket didReadData:(NSData *)data withTag:(lo
if([ClientCoreSDK isENABLED_DEBUG])
NSLog(@"【IMCORE-TCP-SOCKET】已正常从【原始帧-体】中解码出msg=%@", msg);
[[LocalDataReciever sharedInstance] handleProtocal:data];
[socket readDataToLength:TCP_FRAME_FIXED_HEADER_LENGTH withTimeout:-1 tag:TCP_TAG_FIXED_LENGTH_HEADER];
[socket readDataToLength:[TCPFrameCodec getTCP_FRAME_FIXED_HEADER_LENGTH] withTimeout:-1 tag:TCP_TAG_FIXED_LENGTH_HEADER];
}
else
{
Expand All @@ -202,7 +202,7 @@ - (void)socket:(MBGCDAsyncSocket *)socket didConnectToHost:(NSString *)host port
if(self.connectionCompletionOnce_ != nil)
self.connectionCompletionOnce_(YES);

[socket readDataToLength:TCP_FRAME_FIXED_HEADER_LENGTH withTimeout:-1 tag:TCP_TAG_FIXED_LENGTH_HEADER];
[socket readDataToLength:[TCPFrameCodec getTCP_FRAME_FIXED_HEADER_LENGTH] withTimeout:-1 tag:TCP_TAG_FIXED_LENGTH_HEADER];
}

- (void)socketDidDisconnect:(MBGCDAsyncSocket *)sock withError:(nullable NSError *)err
Expand Down

0 comments on commit ef516ac

Please sign in to comment.