Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
ccim_sdk_android
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sheteng
ccim_sdk_android
Commits
cba08841
Commit
cba08841
authored
Jan 18, 2022
by
sheteng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新server字段
parent
39176743
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
55 additions
and
39 deletions
+55
-39
app/build.gradle
app/build.gradle
+2
-2
app/src/main/java/com/ccwangluo/im/FirstFragment.java
app/src/main/java/com/ccwangluo/im/FirstFragment.java
+23
-25
app/src/main/java/com/ccwangluo/im/data/LoginViewModel.java
app/src/main/java/com/ccwangluo/im/data/LoginViewModel.java
+3
-3
app/src/main/java/com/ccwangluo/im/ui/login/LoginActivity.java
...rc/main/java/com/ccwangluo/im/ui/login/LoginActivity.java
+2
-1
app/src/main/res/layout/activity_login.xml
app/src/main/res/layout/activity_login.xml
+15
-1
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
+2
-2
ccim/src/main/java/com/ccwangluo/ccim/manage/SocketManager.java
...rc/main/java/com/ccwangluo/ccim/manage/SocketManager.java
+5
-4
ccim/src/main/proto/chat.proto
ccim/src/main/proto/chat.proto
+3
-1
No files found.
app/build.gradle
View file @
cba08841
...
@@ -45,8 +45,8 @@ dependencies {
...
@@ -45,8 +45,8 @@ dependencies {
def
multidex_version
=
"2.0.1"
def
multidex_version
=
"2.0.1"
implementation
"androidx.multidex:multidex:$multidex_version"
implementation
"androidx.multidex:multidex:$multidex_version"
def
lifecycle_version
=
"2.3.1"
def
lifecycle_version
=
"2.3.1"
implementation
"androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation
(
"androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
)
implementation
"androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation
(
"androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
)
implementation
'androidx.appcompat:appcompat:1.3.1'
implementation
'androidx.appcompat:appcompat:1.3.1'
implementation
'com.google.android.material:material:1.4.0'
implementation
'com.google.android.material:material:1.4.0'
implementation
'androidx.constraintlayout:constraintlayout:2.1.1'
implementation
'androidx.constraintlayout:constraintlayout:2.1.1'
...
...
app/src/main/java/com/ccwangluo/im/FirstFragment.java
View file @
cba08841
...
@@ -11,7 +11,6 @@ import androidx.annotation.NonNull;
...
@@ -11,7 +11,6 @@ import androidx.annotation.NonNull;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.Fragment
;
import
com.ccwangluo.ccim.CCIMClient
;
import
com.ccwangluo.ccim.CCIMClient
;
import
com.ccwangluo.ccim.listener.OnConnectListener
;
import
com.ccwangluo.ccim.listener.OnPushMsgListener
;
import
com.ccwangluo.ccim.listener.OnPushMsgListener
;
import
com.ccwangluo.ccim.listener.ResultEventCallback
;
import
com.ccwangluo.ccim.listener.ResultEventCallback
;
import
com.ccwangluo.ccim.modle.Contact
;
import
com.ccwangluo.ccim.modle.Contact
;
...
@@ -19,7 +18,6 @@ import com.ccwangluo.ccim.modle.MessageContent;
...
@@ -19,7 +18,6 @@ import com.ccwangluo.ccim.modle.MessageContent;
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.User
;
import
com.ccwangluo.ccim.modle.User
;
import
com.ccwangluo.ccim.util.HmacUtil
;
import
com.ccwangluo.im.databinding.FragmentFirstBinding
;
import
com.ccwangluo.im.databinding.FragmentFirstBinding
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -41,29 +39,29 @@ public class FirstFragment extends Fragment {
...
@@ -41,29 +39,29 @@ public class FirstFragment extends Fragment {
public
void
onViewCreated
(
@NonNull
View
view
,
Bundle
savedInstanceState
)
{
public
void
onViewCreated
(
@NonNull
View
view
,
Bundle
savedInstanceState
)
{
super
.
onViewCreated
(
view
,
savedInstanceState
);
super
.
onViewCreated
(
view
,
savedInstanceState
);
String
appKey
=
"c981adfde9c4000"
;
//
String appKey = "c981adfde9c4000";
String
userName
=
"user101"
;
//
String userName = "user101";
Long
userId
=
101L
;
//
Long userId = 101L;
String
extData
=
"extData"
;
//
String extData = "extData";
Long
ts
=
System
.
currentTimeMillis
();
//
Long ts = System.currentTimeMillis();
String
data
=
appKey
+
"&"
+
userId
+
"&"
+
userName
+
"&"
+
extData
+
"&"
+
ts
+
//
String data = appKey + "&" + userId + "&" + userName + "&" + extData + "&" + ts +
"&wW7cR31PwJseIoZMOs311nljHpwUmujs"
;
//
"&wW7cR31PwJseIoZMOs311nljHpwUmujs";
//sign计算在服务器,本地不要暴露appsecrect
//
//sign计算在服务器,本地不要暴露appsecrect
String
sign
=
HmacUtil
.
stringToSign
(
"wW7cR31PwJseIoZMOs311nljHpwUmujs"
,
data
);
//
String sign = HmacUtil.stringToSign("wW7cR31PwJseIoZMOs311nljHpwUmujs", data);
//
CCIMClient
.
getInstance
().
initSDK
(
getContext
(),
appKey
,
userName
,
extData
,
userId
,
ts
,
sign
,
new
OnConnectListener
()
{
//
CCIMClient.getInstance().initSDK(getContext(), appKey, userName, extData, userId, ts, sign, new OnConnectListener() {
@Override
//
@Override
public
void
onSocketConnection
()
{
//
public void onSocketConnection() {
refreshLogView
(
"connect success"
);
//
refreshLogView("connect success");
}
//
}
//
@Override
//
@Override
public
void
onSocketDisconnection
(
int
code
)
{
//
public void onSocketDisconnection(int code) {
//
}
//
}
//
//
});
//
});
CCIMClient
.
getInstance
().
registerMessageListener
(
new
OnPushMsgListener
()
{
CCIMClient
.
getInstance
().
registerMessageListener
(
new
OnPushMsgListener
()
{
...
...
app/src/main/java/com/ccwangluo/im/data/LoginViewModel.java
View file @
cba08841
...
@@ -30,16 +30,16 @@ public class LoginViewModel extends ViewModel {
...
@@ -30,16 +30,16 @@ public class LoginViewModel extends ViewModel {
public
MutableLiveData
<
List
<
Long
>>
channelList
=
new
MutableLiveData
<>();
public
MutableLiveData
<
List
<
Long
>>
channelList
=
new
MutableLiveData
<>();
public
void
login
(
Context
context
,
String
appKey
,
String
appsecret
,
String
username
,
String
userId
,
String
ip
,
int
port
)
{
public
void
login
(
Context
context
,
String
appKey
,
String
appsecret
,
String
username
,
String
userId
,
String
server
,
String
ip
,
int
port
)
{
Long
id
=
Long
.
parseLong
(
userId
);
Long
id
=
Long
.
parseLong
(
userId
);
String
extData
=
"extData"
;
String
extData
=
"extData"
;
Long
ts
=
System
.
currentTimeMillis
();
Long
ts
=
System
.
currentTimeMillis
();
String
data
=
appKey
+
"&"
+
id
+
"&"
+
username
+
"&"
+
extData
+
"&"
+
ts
+
String
data
=
appKey
+
"&"
+
id
+
"&"
+
username
+
"&"
+
server
+
"&"
+
extData
+
"&"
+
ts
+
"&"
+
appsecret
;
"&"
+
appsecret
;
//sign计算在服务器,本地不要暴露appsecrect
//sign计算在服务器,本地不要暴露appsecrect
String
sign
=
HmacUtil
.
stringToSign
(
appsecret
,
data
);
String
sign
=
HmacUtil
.
stringToSign
(
appsecret
,
data
);
CCIMClient
.
getInstance
().
initServer
(
ip
,
port
);
CCIMClient
.
getInstance
().
initServer
(
ip
,
port
);
CCIMClient
.
getInstance
().
initSDK
(
context
,
appKey
,
username
,
extData
,
id
,
ts
,
sign
,
new
OnConnectListener
()
{
CCIMClient
.
getInstance
().
initSDK
(
context
,
appKey
,
username
,
extData
,
id
,
ts
,
sign
,
server
,
new
OnConnectListener
()
{
@Override
@Override
public
void
onSocketConnection
()
{
public
void
onSocketConnection
()
{
System
.
out
.
println
(
"onSocketConnection"
);
System
.
out
.
println
(
"onSocketConnection"
);
...
...
app/src/main/java/com/ccwangluo/im/ui/login/LoginActivity.java
View file @
cba08841
...
@@ -63,8 +63,9 @@ public class LoginActivity extends AppCompatActivity {
...
@@ -63,8 +63,9 @@ public class LoginActivity extends AppCompatActivity {
String
appkey
=
binding
.
appkey
.
getText
().
toString
();
String
appkey
=
binding
.
appkey
.
getText
().
toString
();
String
appSecret
=
binding
.
appSecret
.
getText
().
toString
();
String
appSecret
=
binding
.
appSecret
.
getText
().
toString
();
String
ip
=
binding
.
ip
.
getText
().
toString
();
String
ip
=
binding
.
ip
.
getText
().
toString
();
String
server
=
binding
.
server
.
getText
().
toString
();
int
port
=
Integer
.
parseInt
(
binding
.
port
.
getText
().
toString
());
int
port
=
Integer
.
parseInt
(
binding
.
port
.
getText
().
toString
());
loginViewModel
.
login
(
getApplicationContext
(),
appkey
,
appSecret
,
username
,
id
,
ip
,
port
);
loginViewModel
.
login
(
getApplicationContext
(),
appkey
,
appSecret
,
username
,
id
,
server
,
ip
,
port
);
}
}
});
});
}
}
...
...
app/src/main/res/layout/activity_login.xml
View file @
cba08841
...
@@ -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=
"10
6.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"
...
@@ -91,6 +91,20 @@
...
@@ -91,6 +91,20 @@
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/username"
/>
app:layout_constraintTop_toBottomOf=
"@+id/username"
/>
<EditText
android:id=
"@+id/server"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:hint=
"server"
android:text=
"1"
android:imeActionLabel=
"@string/action_sign_in_short"
android:imeOptions=
"actionDone"
android:selectAllOnFocus=
"true"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/username"
/>
<Button
<Button
android:id=
"@+id/login"
android:id=
"@+id/login"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
...
...
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
View file @
cba08841
...
@@ -87,10 +87,10 @@ public class CCIMClient {
...
@@ -87,10 +87,10 @@ public class CCIMClient {
socketManager
.
initServer
(
ip
,
port
);
socketManager
.
initServer
(
ip
,
port
);
}
}
public
void
initSDK
(
Context
context
,
String
appKey
,
String
userName
,
String
extData
,
Long
userId
,
Long
ts
,
String
sign
,
OnConnectListener
resultCallback
)
{
public
void
initSDK
(
Context
context
,
String
appKey
,
String
userName
,
String
extData
,
Long
userId
,
Long
ts
,
String
sign
,
String
server
,
OnConnectListener
resultCallback
)
{
this
.
userId
=
userId
;
this
.
userId
=
userId
;
messageManager
.
init
(
context
,
userId
);
messageManager
.
init
(
context
,
userId
);
socketManager
.
initChat
(
context
,
appKey
,
userName
,
extData
,
userId
,
ts
,
sign
,
new
OnClientConnectListener
()
{
socketManager
.
initChat
(
context
,
appKey
,
userName
,
extData
,
userId
,
ts
,
sign
,
server
,
new
OnClientConnectListener
()
{
@Override
@Override
public
void
onSocketConnection
(
Chat
.
ConnectResponse
.
ClientConfig
clientConfig
)
{
public
void
onSocketConnection
(
Chat
.
ConnectResponse
.
ClientConfig
clientConfig
)
{
maxSendMsgInterval
=
clientConfig
.
getSendMsgInterval
();
maxSendMsgInterval
=
clientConfig
.
getSendMsgInterval
();
...
...
ccim/src/main/java/com/ccwangluo/ccim/manage/SocketManager.java
View file @
cba08841
...
@@ -41,7 +41,7 @@ public class SocketManager {
...
@@ -41,7 +41,7 @@ public class SocketManager {
private
SocketClient
socketClient
;
private
SocketClient
socketClient
;
public
void
connectChatServer
(
String
appKey
,
String
userName
,
String
extData
,
Long
userId
,
Long
ts
,
String
sign
)
{
public
void
connectChatServer
(
String
appKey
,
String
userName
,
String
extData
,
Long
userId
,
Long
ts
,
String
sign
,
String
gameServer
)
{
logger
.
info
(
"send connect"
);
logger
.
info
(
"send connect"
);
Chat
.
ChatRequestMessage
.
Builder
builder
=
Chat
.
ChatRequestMessage
.
newBuilder
();
Chat
.
ChatRequestMessage
.
Builder
builder
=
Chat
.
ChatRequestMessage
.
newBuilder
();
Chat
.
ConnectRequest
connectRequest
=
Chat
.
ConnectRequest
.
newBuilder
()
Chat
.
ConnectRequest
connectRequest
=
Chat
.
ConnectRequest
.
newBuilder
()
...
@@ -50,6 +50,7 @@ public class SocketManager {
...
@@ -50,6 +50,7 @@ public class SocketManager {
.
setUserId
(
userId
)
.
setUserId
(
userId
)
.
setExtData
(
extData
)
.
setExtData
(
extData
)
.
setTs
(
ts
)
.
setTs
(
ts
)
.
setGameServer
(
gameServer
)
.
setSign
(
sign
)
.
setSign
(
sign
)
.
build
();
.
build
();
builder
.
setConnectReq
(
connectRequest
);
builder
.
setConnectReq
(
connectRequest
);
...
@@ -72,7 +73,7 @@ public class SocketManager {
...
@@ -72,7 +73,7 @@ public class SocketManager {
});
});
}
}
public
void
initChat
(
Context
context
,
String
appKey
,
String
userName
,
String
extData
,
Long
userId
,
Long
ts
,
String
sign
,
OnClientConnectListener
resultCallback
)
{
public
void
initChat
(
Context
context
,
String
appKey
,
String
userName
,
String
extData
,
Long
userId
,
Long
ts
,
String
sign
,
String
server
,
OnClientConnectListener
resultCallback
)
{
onConnectListener
=
resultCallback
;
onConnectListener
=
resultCallback
;
if
(
socketClient
==
null
)
{
if
(
socketClient
==
null
)
{
socketClient
=
new
NettyChatClient
(
context
,
SERVER_IP
,
SERVER_PORT
);
socketClient
=
new
NettyChatClient
(
context
,
SERVER_IP
,
SERVER_PORT
);
...
@@ -80,7 +81,7 @@ public class SocketManager {
...
@@ -80,7 +81,7 @@ public class SocketManager {
socketClient
.
connect
(
new
MessageListener
()
{
socketClient
.
connect
(
new
MessageListener
()
{
@Override
@Override
public
void
onServerConnect
()
{
public
void
onServerConnect
()
{
connectChatServer
(
appKey
,
userName
,
extData
,
userId
,
ts
,
sign
);
connectChatServer
(
appKey
,
userName
,
extData
,
userId
,
ts
,
sign
,
server
);
}
}
@Override
@Override
...
@@ -106,7 +107,7 @@ public class SocketManager {
...
@@ -106,7 +107,7 @@ public class SocketManager {
}
}
if
(
data
.
getHeader
().
getCode
()
==
Common
.
StatusCode
.
STATUS_CODE_NO_AUTH_ERROR
)
{
//断线重连
if
(
data
.
getHeader
().
getCode
()
==
Common
.
StatusCode
.
STATUS_CODE_NO_AUTH_ERROR
)
{
//断线重连
connectChatServer
(
appKey
,
userName
,
extData
,
userId
,
ts
,
sign
);
connectChatServer
(
appKey
,
userName
,
extData
,
userId
,
ts
,
sign
,
server
);
}
}
int
seq
=
data
.
getHeader
().
getSeq
();
int
seq
=
data
.
getHeader
().
getSeq
();
ResultEventCallback
<
Chat
.
ChatResponseMessage
>
callBack
=
callBackManager
.
getCallBack
(
seq
);
ResultEventCallback
<
Chat
.
ChatResponseMessage
>
callBack
=
callBackManager
.
getCallBack
(
seq
);
...
...
ccim/src/main/proto/chat.proto
View file @
cba08841
...
@@ -102,8 +102,10 @@ message ConnectRequest {
...
@@ -102,8 +102,10 @@ message ConnectRequest {
string
ext_data
=
4
;
string
ext_data
=
4
;
int64
ts
=
5
;
int64
ts
=
5
;
string
sign
=
6
;
string
sign
=
6
;
string
game_server
=
7
;
// sign使用HMAC加密算法,由接入端的服务端计算完成传给接入端的客户端
// sign使用HMAC加密算法,由接入端的服务端计算完成传给接入端的客户端
// sign = HMAC_SHA256(app_secret).digestToHex(app_key&user_id&username&ext_data&ts&app_secret)
// sign = HMAC_SHA256(app_secret).digestToHex(app_key&user_id&username&
game_server&
ext_data&ts&app_secret)
// ts=CurrentTimeMillis (毫秒)
// ts=CurrentTimeMillis (毫秒)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment