Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wecloud_im_server
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hewei
wecloud_im_server
Commits
92d88341
Commit
92d88341
authored
Apr 18, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、token有效期修改为15天
2、新增getToken接口,提供给SDK调用 3、sdk新增getToken方法
parent
20a1d542
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
289 additions
and
93 deletions
+289
-93
bootstrap/src/main/java/io/geekidea/springbootplus/config/ShiroConfig.java
+1
-0
config/src/main/resources/config/application.yml
+1
-1
core/src/main/java/com/wecloud/im/controller/TokenController.java
+17
-4
core/src/main/java/com/wecloud/im/param/ClientLoginParam.java
+23
-0
core/src/main/java/com/wecloud/im/service/ImClientDeviceService.java
+13
-1
core/src/main/java/com/wecloud/im/service/ImClientLoginService.java
+11
-1
core/src/main/java/com/wecloud/im/service/impl/ImClientDeviceServiceImpl.java
+13
-3
core/src/main/java/com/wecloud/im/service/impl/ImClientLoginServiceImpl.java
+73
-12
core/src/main/java/com/wecloud/im/service/impl/ImClientServiceImpl.java
+0
-10
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+25
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+12
-1
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+10
-1
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImClientOperation.java
+35
-1
im-sdk/src/main/java/com/wecloud/im/sdk/model/ClientLoginRequest.java
+27
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/ImTokenVerify.java
+0
-40
im-sdk/src/main/java/com/wecloud/im/sdk/model/Token.java
+1
-16
im-sdk/src/main/java/com/wecloud/im/sdk/sample/GetTokenSample.java
+26
-0
im-sdk/src/main/java/com/wecloud/im/sdk/sample/RegisterClientSample.java
+1
-2
No files found.
bootstrap/src/main/java/io/geekidea/springbootplus/config/ShiroConfig.java
View file @
92d88341
...
...
@@ -279,6 +279,7 @@ public class ShiroConfig {
// 如果启用shiro,则设置最后一个设置为JWTFilter,否则全部路径放行
if
(
shiroProperties
.
isEnable
())
{
filterChainDefinitionMap
.
put
(
"/imClient/registerClient"
,
"signatureAuthFilter"
);
filterChainDefinitionMap
.
put
(
"/token/getToken"
,
"signatureAuthFilter"
);
filterChainDefinitionMap
.
put
(
"/**"
,
JWT_FILTER_NAME
);
}
else
{
filterChainDefinitionMap
.
put
(
"/**"
,
ANON
);
...
...
config/src/main/resources/config/application.yml
View file @
92d88341
...
...
@@ -227,7 +227,7 @@ spring-boot-plus:
# 观众
audience
:
web
# 默认过期时间60天,单位:秒
expire-second
:
5184
000
expire-second
:
1296
000
# 是否刷新token
refresh-token
:
true
# 刷新token的时间间隔,默认10分钟,单位:秒
...
...
core/src/main/java/com/wecloud/im/controller/TokenController.java
View file @
92d88341
package
com
.
wecloud
.
im
.
controller
;
import
com.alibaba.nacos.api.exception.NacosException
;
import
com.wecloud.im.param.ImTokenVerify
;
import
com.wecloud.im.service.ImClientLoginService
;
import
com.wecloud.im.vo.TokenVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.alibaba.nacos.api.exception.NacosException
;
import
com.wecloud.im.param.ClientLoginParam
;
import
com.wecloud.im.param.ImTokenVerify
;
import
com.wecloud.im.service.ImClientLoginService
;
import
com.wecloud.im.vo.TokenVo
;
/**
* token 控制器
*
...
...
@@ -39,6 +42,16 @@ public class TokenController extends BaseController {
return
imClientLoginService
.
verifySign
(
imTokenVerify
);
}
/**
* 根据客户方生成签名字符串 验证通过则下发token
*/
@PostMapping
(
"/getToken"
)
@ApiOperation
(
value
=
"下发客户端token"
,
notes
=
"下发客户端token"
)
public
ApiResult
<
TokenVo
>
getToken
(
@RequestBody
ClientLoginParam
clientLoginParam
)
throws
NacosException
{
String
clientId
=
clientLoginParam
.
getClientId
();
Integer
deviceType
=
clientLoginParam
.
getDeviceType
();
return
imClientLoginService
.
getToken
(
clientId
,
deviceType
);
}
}
core/src/main/java/com/wecloud/im/param/ClientLoginParam.java
0 → 100644
View file @
92d88341
package
com
.
wecloud
.
im
.
param
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
*
* @Author luozh
* @Date 2022年04月18日 10:59
* @Version 1.0
*/
@Api
(
value
=
"客户端登录入参"
,
tags
=
{
"客户端登录入参"
})
@Data
public
class
ClientLoginParam
{
@ApiModelProperty
(
"客户端id"
)
private
String
clientId
;
@ApiModelProperty
(
"设备类型"
)
private
Integer
deviceType
;
}
core/src/main/java/com/wecloud/im/service/ImClientDeviceService.java
View file @
92d88341
package
com
.
wecloud
.
im
.
service
;
import
com.wecloud.im.entity.ImClientDevice
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
com.wecloud.im.entity.ImClientDevice
;
/**
* @Author wenzhida
* @Date 2022/3/2 14:58
...
...
@@ -18,4 +19,15 @@ public interface ImClientDeviceService extends BaseService<ImClientDevice> {
*/
int
removeOldToken
(
Long
appId
,
String
deviceToken
);
/**
* 根据
* @Author luozh
* @Date 2022年04月18日 11:08:30
* @param appId
* @param fkClientId
* @param deviceType
* @Return
*/
ImClientDevice
getOneByAppIdAndClientIdAndType
(
Long
appId
,
Long
fkClientId
,
Integer
deviceType
);
}
core/src/main/java/com/wecloud/im/service/ImClientLoginService.java
View file @
92d88341
package
com
.
wecloud
.
im
.
service
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
com.alibaba.nacos.api.exception.NacosException
;
import
com.wecloud.im.param.ImTokenVerify
;
import
com.wecloud.im.vo.TokenVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
/**
* 终端表 服务类
...
...
@@ -21,4 +22,13 @@ public interface ImClientLoginService {
*/
ApiResult
<
TokenVo
>
verifySign
(
ImTokenVerify
imTokenVerify
)
throws
NacosException
;
/**
* 获取client Token
* @Author luozh
* @Date 2022年04月18日 10:56:24
* @param
* @Return
*/
ApiResult
<
TokenVo
>
getToken
(
String
clientId
,
Integer
deviceType
)
throws
NacosException
;
}
core/src/main/java/com/wecloud/im/service/impl/ImClientDeviceServiceImpl.java
View file @
92d88341
package
com
.
wecloud
.
im
.
service
.
impl
;
import
com.wecloud.im.entity.ImClientDevice
;
import
com.wecloud.im.mapper.ImClientDeviceMapper
;
import
com.wecloud.im.service.ImClientDeviceService
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.wecloud.im.entity.ImClientDevice
;
import
com.wecloud.im.mapper.ImClientDeviceMapper
;
import
com.wecloud.im.service.ImClientDeviceService
;
/**
* @Author wenzhida
* @Date 2022/3/2 15:00
...
...
@@ -25,4 +28,11 @@ public class ImClientDeviceServiceImpl extends BaseServiceImpl<ImClientDeviceMap
return
imClientDeviceMapper
.
removeOldToken
(
appId
,
deviceToken
);
}
@Override
public
ImClientDevice
getOneByAppIdAndClientIdAndType
(
Long
appId
,
Long
fkClientId
,
Integer
deviceType
)
{
return
getOne
(
Wrappers
.<
ImClientDevice
>
lambdaQuery
()
.
eq
(
ImClientDevice:
:
getFkAppid
,
appId
)
.
eq
(
ImClientDevice:
:
getFkClientId
,
fkClientId
)
.
eq
(
ImClientDevice:
:
getDeviceType
,
deviceType
));
}
}
core/src/main/java/com/wecloud/im/service/impl/ImClientLoginServiceImpl.java
View file @
92d88341
package
com
.
wecloud
.
im
.
service
.
impl
;
import
io.geekidea.springbootplus.config.properties.JwtProperties
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.shiro.cache.AppLoginRedisService
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
io.geekidea.springbootplus.framework.shiro.util.SecurityUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
java.time.Duration
;
import
java.util.Date
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
cn.hutool.crypto.digest.MD5
;
import
com.alibaba.nacos.api.exception.NacosException
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.wecloud.im.balance.WsInstance
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClientDevice
;
import
com.wecloud.im.param.ImTokenVerify
;
import
com.wecloud.im.service.ImApplicationService
;
import
com.wecloud.im.service.ImClientDeviceService
;
import
com.wecloud.im.service.ImClientLoginService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.vo.TokenVo
;
import
com.wecloud.utils.SnowflakeUtil
;
import
io.geekidea.springbootplus.config.properties.JwtProperties
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.shiro.cache.AppLoginRedisService
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.Duration
;
@Service
@Slf4j
...
...
@@ -38,6 +45,10 @@ public class ImClientLoginServiceImpl implements ImClientLoginService {
private
static
JwtProperties
jwtProperties
;
@Autowired
private
ImApplicationService
imApplicationService
;
@Autowired
private
ImClientDeviceService
imClientDeviceService
;
@Autowired
private
ImClientService
imClientService
;
@Autowired
...
...
@@ -114,4 +125,54 @@ public class ImClientLoginServiceImpl implements ImClientLoginService {
return
ApiResult
.
ok
(
tokenVo
);
}
@Override
public
ApiResult
<
TokenVo
>
getToken
(
String
clientId
,
Integer
deviceType
)
throws
NacosException
{
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
String
appKey
=
SecurityUtils
.
getCurrentAppKey
();
ImApplication
imApplication
=
imApplicationService
.
getCacheAppByAppKey
(
appKey
);
String
appSecret
=
imApplication
.
getAppSecret
();
// 判断客户端是否存在,不存在则创建
ImClient
client
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
appId
)
.
eq
(
ImClient:
:
getClientId
,
clientId
));
;
if
(
client
==
null
)
{
client
=
new
ImClient
();
client
.
setId
(
SnowflakeUtil
.
getId
());
client
.
setFkAppid
(
appId
);
client
.
setClientId
(
clientId
+
""
);
imClientService
.
save
(
client
);
}
// 判断客户端绑定的设备是否存在,不存在则创建
ImClientDevice
clientDevice
=
imClientDeviceService
.
getOneByAppIdAndClientIdAndType
(
appId
,
client
.
getId
(),
deviceType
);
if
(
clientDevice
==
null
)
{
ImClientDevice
imClientDevice
=
new
ImClientDevice
();
imClientDevice
.
setId
(
SnowflakeUtil
.
getId
());
imClientDevice
.
setFkAppid
(
appId
);
imClientDevice
.
setFkClientId
(
client
.
getId
());
imClientDevice
.
setValid
(
1
);
imClientDevice
.
setDeviceType
(
deviceType
);
imClientDevice
.
setCreateTime
(
new
Date
());
imClientDevice
.
setUpdateTime
(
new
Date
());
imClientDeviceService
.
save
(
imClientDevice
);
}
// 生成token
String
generateToken
=
JwtUtil
.
generateToken
(
clientId
+
""
,
appKey
,
appSecret
,
Duration
.
ofDays
(
99999
),
deviceType
);
JwtToken
jwtToken
=
JwtToken
.
build
(
generateToken
,
appSecret
,
jwtProperties
.
getExpireSecond
(),
clientId
+
""
,
appKey
,
deviceType
);
appLoginRedisService
.
cacheLoginInfo
(
jwtToken
);
TokenVo
tokenVo
=
new
TokenVo
();
tokenVo
.
setToken
(
generateToken
);
tokenVo
.
setWsAddr
(
wsInstance
.
selectOneHealthyInstance
());
tokenVo
.
setId
(
client
.
getId
());
tokenVo
.
setAttributes
(
client
.
getAttributes
());
return
ApiResult
.
ok
(
tokenVo
);
}
}
core/src/main/java/com/wecloud/im/service/impl/ImClientServiceImpl.java
View file @
92d88341
...
...
@@ -341,16 +341,6 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
imClient
.
setHeadPortrait
(
param
.
getHeadPortrait
());
imClient
.
setNickname
(
param
.
getNickname
());
save
(
imClient
);
ImClientDevice
imClientDevice
=
new
ImClientDevice
();
imClientDevice
.
setId
(
SnowflakeUtil
.
getId
());
imClientDevice
.
setFkAppid
(
appId
);
imClientDevice
.
setFkClientId
(
imClient
.
getId
());
imClientDevice
.
setValid
(
1
);
imClientDevice
.
setDeviceType
(
param
.
getDeviceType
());
imClientDevice
.
setCreateTime
(
new
Date
());
imClientDevice
.
setUpdateTime
(
new
Date
());
imClientDeviceService
.
save
(
imClientDevice
);
}
return
imClient
.
getId
();
}
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
0 → 100644
View file @
92d88341
package
com
.
wecloud
.
im
.
sdk
;
import
lombok.experimental.UtilityClass
;
/**
* 资源常量类
* @Author luozh
* @Date 2022年04月18日 13:34
* @Version 1.0
*/
@UtilityClass
public
class
ResourcePathConstants
{
/**
* 注册客户端
*/
public
static
final
String
REGISTER_CLIENT_URL
=
"/api/imClient/registerClient"
;
/**
* 获取token
*/
public
static
final
String
GET_TOKEN_URL
=
"/api/token/getToken"
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
92d88341
package
com
.
wecloud
.
im
.
sdk
;
import
com.wecloud.im.sdk.model.ImClient
;
import
com.wecloud.im.sdk.model.Token
;
/**
*
...
...
@@ -21,6 +22,16 @@ public interface WecloudIm {
* @Return
* @return
*/
ImClient
registerClient
(
Long
userId
,
String
headPortrait
,
String
nickname
,
Integer
deviceType
);
ImClient
registerClient
(
Long
userId
,
String
headPortrait
,
String
nickname
);
/**
* 获取用户token
* @Author luozh
* @Date 2022年04月18日 11:50:44
* @param userId 用户id
* @param deviceType 设备类型 1:ios; 2:android; 3:web; 4:win; 5:mac
* @Return
*/
Token
getToken
(
Long
userId
,
Integer
deviceType
);
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
92d88341
...
...
@@ -3,8 +3,10 @@ package com.wecloud.im.sdk;
import
java.net.URL
;
import
com.wecloud.im.sdk.internal.WecloudImClientOperation
;
import
com.wecloud.im.sdk.model.ClientLoginRequest
;
import
com.wecloud.im.sdk.model.ImClient
;
import
com.wecloud.im.sdk.model.RegisterClientRequest
;
import
com.wecloud.im.sdk.model.Token
;
/**
*
...
...
@@ -40,7 +42,7 @@ public class WecloudImClient implements WecloudIm {
}
@Override
public
ImClient
registerClient
(
Long
userId
,
String
headPortrait
,
String
nickname
,
Integer
deviceType
)
{
public
ImClient
registerClient
(
Long
userId
,
String
headPortrait
,
String
nickname
)
{
RegisterClientRequest
registerClientRequest
=
RegisterClientRequest
.
builder
()
.
userId
(
userId
).
headPortrait
(
headPortrait
)
...
...
@@ -49,6 +51,13 @@ public class WecloudImClient implements WecloudIm {
return
imClientOperation
.
registerClient
(
registerClientRequest
);
}
@Override
public
Token
getToken
(
Long
userId
,
Integer
deviceType
)
{
ClientLoginRequest
clientLoginRequest
=
ClientLoginRequest
.
builder
().
clientId
(
userId
).
deviceType
(
deviceType
).
build
();
return
imClientOperation
.
getToken
(
clientLoginRequest
);
}
private
void
initOperations
()
{
this
.
imClientOperation
=
new
WecloudImClientOperation
(
apiDomain
,
appKey
,
appSecret
);
}
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImClientOperation.java
View file @
92d88341
...
...
@@ -8,9 +8,13 @@ import com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONObject
;
import
com.wecloud.im.sdk.common.HttpMethod
;
import
com.wecloud.im.sdk.common.RequestMessage
;
import
com.wecloud.im.sdk.model.ClientLoginRequest
;
import
com.wecloud.im.sdk.model.ImClient
;
import
com.wecloud.im.sdk.model.RegisterClientRequest
;
import
com.wecloud.im.sdk.model.Token
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
GET_TOKEN_URL
;
import
static
com
.
wecloud
.
im
.
sdk
.
ResourcePathConstants
.
REGISTER_CLIENT_URL
;
import
static
com
.
wecloud
.
im
.
sdk
.
utils
.
CodingUtils
.
assertParameterNotNull
;
/**
...
...
@@ -43,7 +47,7 @@ public class WecloudImClientOperation extends WecloudImOperation {
param
.
put
(
"headPortrait"
,
registerClientRequest
.
getHeadPortrait
());
param
.
put
(
"nickname"
,
registerClientRequest
.
getNickname
());
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
"/api/imClient/registerClient"
)
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
REGISTER_CLIENT_URL
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
registerClientRequest
).
build
();
...
...
@@ -51,4 +55,34 @@ public class WecloudImClientOperation extends WecloudImOperation {
ImClient
imClient
=
JSON
.
parseObject
(
result
.
toJSONString
(),
ImClient
.
class
);
return
imClient
;
}
/**
* 获取用户token
* @Author luozh
* @Date 2022年04月18日 11:52:18
* @param clientLoginRequest
* @Return
*/
public
Token
getToken
(
ClientLoginRequest
clientLoginRequest
)
{
Long
clientId
=
clientLoginRequest
.
getClientId
();
Integer
deviceType
=
clientLoginRequest
.
getDeviceType
();
// 参数校验
assertParameterNotNull
(
clientId
,
"userId"
);
assertParameterNotNull
(
deviceType
,
"deviceType"
);
// 校验通过 构建参数
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"deviceType"
,
clientLoginRequest
.
getDeviceType
()
+
""
);
param
.
put
(
"clientId"
,
clientLoginRequest
.
getClientId
()
+
""
);
// 发送请求
RequestMessage
request
=
new
WecloudRequestMessageBuilder
().
setEndpoint
(
GET_TOKEN_URL
)
.
setMethod
(
HttpMethod
.
POST
).
setParameters
(
param
)
.
setOriginalRequest
(
clientLoginRequest
).
build
();
JSONObject
result
=
doOperation
(
request
);
Token
token
=
JSON
.
parseObject
(
result
.
toJSONString
(),
Token
.
class
);
return
token
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/ClientLoginRequest.java
0 → 100644
View file @
92d88341
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
*
* @Author luozh
* @Date 2022年04月18日 11:47
* @Version 1.0
*/
@Builder
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
ClientLoginRequest
extends
WebServiceRequest
{
/**
* 用户id
*/
private
Long
clientId
;
/**
* 设备类型 1:ios; 2:android; 3:web; 4:win; 5:mac
*/
private
Integer
deviceType
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/ImTokenVerify.java
deleted
100644 → 0
View file @
20a1d542
package
com
.
wecloud
.
im
.
sdk
.
model
;
import
lombok.Data
;
/**
* token 校验
*
* @author wei
* @since 2021-04-29
*/
@Data
public
class
ImTokenVerify
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 时间戳,需与生成sign时的值一致
*/
private
String
timestamp
;
/**
* client客户端id,需与生成sign时的值一致
*/
private
String
clientId
;
/**
* appkey,需与生成sign时的值一致
*/
private
String
appKey
;
/**
* 客户端平台: 1 web, 2 安卓, 3 ios, 4 pc-win, 5 pc-macOs, 需与生成sign时的值一致
*/
private
Integer
platform
;
/**
* 签名sign
*/
private
String
sign
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/Token.java
View file @
92d88341
...
...
@@ -3,7 +3,7 @@ package com.wecloud.im.sdk.model;
import
lombok.Data
;
/**
*
*
client token信息
* @Author luozh
* @Date 2022年04月13日 11:07
* @Version 1.0
...
...
@@ -20,19 +20,4 @@ public class Token {
* 客户端id
*/
private
Long
id
;
/**
* webSocket连接地址
*/
private
String
wsAddr
;
/**
* 加密密钥
*/
private
String
dataAesKey
;
/**
* 可选 自定义属性,供开发者扩展使用。
*/
private
String
attributes
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/sample/GetTokenSample.java
0 → 100644
View file @
92d88341
package
com
.
wecloud
.
im
.
sdk
.
sample
;
import
com.alibaba.fastjson.JSONObject
;
import
com.wecloud.im.sdk.WecloudIm
;
import
com.wecloud.im.sdk.WecloudImClientBuilder
;
import
com.wecloud.im.sdk.model.Token
;
/**
*
* @Author luozh
* @Date 2022年04月18日 13:38
* @Version 1.0
*/
public
class
GetTokenSample
{
public
static
void
main
(
String
[]
args
)
{
WecloudIm
im
=
new
WecloudImClientBuilder
().
build
(
"http://127.0.0.1:8082"
,
"QizKVHcILRWp6Td2"
,
"287d04828099fb7de871e9dda845fa8b6b2302faf2ab3737"
);
Long
userId
=
20220413001L
;
Integer
deviceType
=
1
;
Token
token
=
im
.
getToken
(
userId
,
deviceType
);
System
.
out
.
println
(
"\t get token result="
+
JSONObject
.
toJSONString
(
token
));
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/sample/RegisterClientSample.java
View file @
92d88341
...
...
@@ -21,8 +21,7 @@ public class RegisterClientSample {
Long
userId
=
20220413001L
;
String
headPortrait
=
""
;
String
nickname
=
"luo_test1"
;
Integer
deviceType
=
1
;
ImClient
imClient
=
im
.
registerClient
(
userId
,
headPortrait
,
nickname
,
deviceType
);
ImClient
imClient
=
im
.
registerClient
(
userId
,
headPortrait
,
nickname
);
System
.
out
.
println
(
"\tregister client result="
+
JSONObject
.
toJSONString
(
imClient
));
}
}
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