Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
若汝棋茗
RRQMSocket
提交
15a68459
RRQMSocket
项目概览
若汝棋茗
/
RRQMSocket
10 个月 前同步成功
通知
20
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
RRQMSocket
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
15a68459
编写于
2月 15, 2023
作者:
若
若汝棋茗
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复ws协议的touchrpc连接问题
上级
8c34dade
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
55 addition
and
51 deletion
+55
-51
src/TouchSocket.AspNetCore/Rpc/TouchRpc/Common/WSTouchRpcUtility.cs
...ocket.AspNetCore/Rpc/TouchRpc/Common/WSTouchRpcUtility.cs
+5
-0
src/TouchSocket.AspNetCore/Rpc/TouchRpc/Components/WSTouchRpcService.cs
...t.AspNetCore/Rpc/TouchRpc/Components/WSTouchRpcService.cs
+3
-7
src/TouchSocket.AspNetCore/Rpc/TouchRpc/Components/WSTouchRpcSocketClient.cs
...NetCore/Rpc/TouchRpc/Components/WSTouchRpcSocketClient.cs
+4
-8
src/TouchSocket.AspNetCore/Rpc/TouchRpc/Middlewares/WSTouchRpcMiddleware.cs
...pNetCore/Rpc/TouchRpc/Middlewares/WSTouchRpcMiddleware.cs
+3
-3
src/TouchSocket.AspNetCore/TouchSocket.AspNetCore.csproj
src/TouchSocket.AspNetCore/TouchSocket.AspNetCore.csproj
+2
-2
src/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs
...ket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs
+37
-30
src/TouchSocket/TouchSocket.csproj
src/TouchSocket/TouchSocket.csproj
+1
-1
未找到文件。
src/TouchSocket.AspNetCore/Rpc/TouchRpc/Common/WSTouchRpcUtility.cs
浏览文件 @
15a68459
...
...
@@ -10,9 +10,14 @@
// 感谢您的下载和使用
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
using
System.Reflection
;
namespace
TouchSocket.Rpc.TouchRpc.AspNetCore
{
internal
class
WSTouchRpcUtility
{
static
WSTouchRpcUtility
()
{
}
}
}
\ No newline at end of file
src/TouchSocket.AspNetCore/Rpc/TouchRpc/Components/WSTouchRpcService.cs
浏览文件 @
15a68459
...
...
@@ -576,7 +576,6 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
OnRouting
(
client
,
e
);
}
private
void
OnRpcServiceHandshaked
(
RpcActor
actor
,
VerifyOptionEventArgs
e
)
{
WSTouchRpcSocketClient
client
=
(
WSTouchRpcSocketClient
)
actor
.
Caller
;
...
...
@@ -656,10 +655,6 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
private
void
RpcServiceOutputSend
(
RpcActor
actor
,
ArraySegment
<
byte
>[]
arg3
)
{
WSTouchRpcSocketClient
client
=
(
WSTouchRpcSocketClient
)
actor
.
Caller
;
if
(!
client
.
CanSend
)
{
return
;
}
client
.
RpcActorSend
(
arg3
);
}
...
...
@@ -741,7 +736,6 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
/// <param name="e"></param>
protected
virtual
void
OnRouting
(
WSTouchRpcSocketClient
client
,
PackageRouterEventArgs
e
)
{
}
/// <summary>
...
...
@@ -784,6 +778,7 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
#
endregion
事件
#
region
小文件
/// <inheritdoc/>
public
PullSmallFileResult
PullSmallFile
(
string
targetId
,
string
path
,
Metadata
metadata
=
null
,
int
timeout
=
5000
,
CancellationToken
token
=
default
)
{
...
...
@@ -835,7 +830,8 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
return
Task
.
FromResult
(
new
Result
(
ResultCode
.
Error
,
TouchSocketStatus
.
ClientNotFind
.
GetDescription
(
targetId
)));
}
}
#
endregion
#
endregion
小文件
#
region
发送
...
...
src/TouchSocket.AspNetCore/Rpc/TouchRpc/Components/WSTouchRpcSocketClient.cs
浏览文件 @
15a68459
...
...
@@ -296,12 +296,10 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
internal
async
void
RpcActorSend
(
ArraySegment
<
byte
>[]
transferBytes
)
{
using
ByteBlock
byteBlock
=
new
ByteBlock
();
foreach
(
var
item
in
transferBytes
)
for
(
int
i
=
0
;
i
<
transferBytes
.
Length
;
i
++)
{
byteBlock
.
Write
(
item
.
Array
,
item
.
Offset
,
item
.
Count
);
await
m_client
.
SendAsync
(
transferBytes
[
i
],
WebSocketMessageType
.
Binary
,
i
==
transferBytes
.
Length
-
1
,
CancellationToken
.
None
);
}
await
m_client
.
SendAsync
(
byteBlock
.
Buffer
,
System
.
Net
.
WebSockets
.
WebSocketMessageType
.
Binary
,
true
,
CancellationToken
.
None
);
}
internal
void
SetRpcActor
(
RpcActor
rpcActor
)
...
...
@@ -371,6 +369,7 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
private
async
Task
BeginReceive
()
{
ByteBlock
byteBlock
=
null
;
int
bufferLength
=
this
.
Config
.
GetValue
(
TouchSocketConfigExtension
.
BufferLengthProperty
);
try
{
while
(
true
)
...
...
@@ -381,10 +380,7 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
byteBlock
.
SafeDispose
();
break
;
}
if
(
byteBlock
==
null
)
{
byteBlock
=
new
ByteBlock
();
}
byteBlock
??=
new
ByteBlock
(
bufferLength
);
byteBlock
.
Write
(
m_buffer
,
0
,
result
.
Count
);
if
(
result
.
EndOfMessage
)
{
...
...
src/TouchSocket.AspNetCore/Rpc/TouchRpc/Middlewares/WSTouchRpcMiddleware.cs
浏览文件 @
15a68459
...
...
@@ -14,6 +14,7 @@ using Microsoft.AspNetCore.Http;
using
Microsoft.Extensions.Logging
;
using
System
;
using
System.Threading.Tasks
;
namespace
TouchSocket.Rpc.TouchRpc.AspNetCore
{
/// <summary>
...
...
@@ -51,7 +52,7 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public
async
Task
<
Task
>
Invoke
(
HttpContext
context
)
public
async
Task
Invoke
(
HttpContext
context
)
{
if
(
context
.
Request
.
Path
.
Equals
(
Url
,
StringComparison
.
CurrentCultureIgnoreCase
))
{
...
...
@@ -71,11 +72,10 @@ namespace TouchSocket.Rpc.TouchRpc.AspNetCore
{
context
.
Response
.
StatusCode
=
400
;
}
return
Task
.
CompletedTask
;
}
else
{
return
m_next
(
context
);
await
m_next
(
context
);
}
}
}
...
...
src/TouchSocket.AspNetCore/TouchSocket.AspNetCore.csproj
浏览文件 @
15a68459
...
...
@@ -5,7 +5,7 @@
<ApplicationIcon>logo.ico</ApplicationIcon>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>D:\MyStore\13_Doc\Keys\TouchSocket.snk</AssemblyOriginatorKeyFile>
<Version>1.2.
0
</Version>
<Version>1.2.
1
</Version>
<LangVersion>8.0</LangVersion>
<Company>若汝棋茗</Company>
<Copyright>Copyright © 2022 若汝棋茗</Copyright>
...
...
@@ -69,6 +69,6 @@ API:https://www.yuque.com/rrqm/touchsocket/index</Description>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.26" />
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.0" />
<PackageReference Include="TouchSocket" Version="1.2.
4
" />
<PackageReference Include="TouchSocket" Version="1.2.
11
" />
</ItemGroup>
</Project>
src/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs
浏览文件 @
15a68459
...
...
@@ -147,9 +147,9 @@ namespace TouchSocket.Rpc.TouchRpc
{
m_client
.
SafeDispose
();
m_client
=
new
ClientWebSocket
();
await
m_client
.
ConnectAsync
(
RemoteIPHost
.
Uri
,
default
);
await
m_client
.
ConnectAsync
(
RemoteIPHost
.
Uri
,
default
)
.
ConfigureAwait
(
false
)
;
_
=
BeginReceive
(
null
);
BeginReceive
(
);
}
if
(
IsHandshaked
)
...
...
@@ -300,42 +300,48 @@ namespace TouchSocket.Rpc.TouchRpc
Disconnected
?.
Invoke
(
this
,
e
);
}
private
async
Task
BeginReceive
(
ByteBlock
byteBlock
)
private
void
BeginReceive
(
)
{
try
Task
.
Factory
.
StartNew
(
async
()
=>
{
byteBlock
??=
new
ByteBlock
();
var
result
=
await
m_client
.
ReceiveAsync
(
m_buffer
,
default
);
if
(
result
.
Count
==
0
)
try
{
BreakOut
(
"远程终端主动关闭"
,
false
);
}
LastActiveTime
=
DateTime
.
Now
;
byteBlock
.
Write
(
m_buffer
.
Array
,
0
,
result
.
Count
);
if
(
result
.
EndOfMessage
)
{
try
{
m_rpcActor
.
InputReceivedData
(
byteBlock
);
}
catch
{
}
finally
ByteBlock
byteBlock
=
null
;
int
bufferLength
=
this
.
Config
.
GetValue
(
TouchSocketConfigExtension
.
BufferLengthProperty
);
while
(
true
)
{
byteBlock
.
SafeDispose
();
byteBlock
??=
new
ByteBlock
(
bufferLength
);
var
result
=
await
m_client
.
ReceiveAsync
(
m_buffer
,
default
);
if
(
result
.
Count
==
0
)
{
BreakOut
(
"远程终端主动关闭"
,
false
);
return
;
}
LastActiveTime
=
DateTime
.
Now
;
byteBlock
.
Write
(
m_buffer
.
Array
,
0
,
result
.
Count
);
if
(
result
.
EndOfMessage
)
{
try
{
m_rpcActor
.
InputReceivedData
(
byteBlock
);
}
catch
{
}
finally
{
byteBlock
.
SafeDispose
();
byteBlock
=
default
;
}
}
}
await
BeginReceive
(
null
);
}
else
catch
(
Exception
ex
)
{
await
BeginReceive
(
byteBlock
);
BreakOut
(
ex
.
Message
,
false
);
}
}
catch
(
Exception
ex
)
{
BreakOut
(
ex
.
Message
,
false
);
}
},
TaskCreationOptions
.
LongRunning
);
}
private
void
BreakOut
(
string
msg
,
bool
manual
)
...
...
@@ -569,6 +575,7 @@ namespace TouchSocket.Rpc.TouchRpc
OnReceived
(
protocol
,
byteBlock
);
}
private
void
OnRpcActorRouting
(
RpcActor
actor
,
PackageRouterEventArgs
e
)
{
if
(
UsePlugin
&&
PluginsManager
.
Raise
<
ITouchRpcPlugin
>(
nameof
(
ITouchRpcPlugin
.
OnRouting
),
this
,
e
))
...
...
src/TouchSocket/TouchSocket.csproj
浏览文件 @
15a68459
...
...
@@ -4,7 +4,7 @@
<ApplicationIcon>logo.ico</ApplicationIcon>
<SignAssembly>True</SignAssembly>
<AssemblyOriginatorKeyFile>D:\MyStore\13_Doc\Keys\TouchSocket.snk</AssemblyOriginatorKeyFile>
<Version>1.2.1
0
</Version>
<Version>1.2.1
1
</Version>
<LangVersion>8.0</LangVersion>
<Company>若汝棋茗</Company>
<Copyright>Copyright © 2023 若汝棋茗</Copyright>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录