Skip to content

Commit 0dfee97

Browse files
committed
Bug fix.
1 parent e417b91 commit 0dfee97

File tree

5 files changed

+33
-5
lines changed

5 files changed

+33
-5
lines changed

Quick.Protocol.Pipeline/QpPipelineClientOptions.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ public override void Check()
2727
public override string GetConnectionInfo() => $"{ServerName}\\{PipeName}";
2828

2929
public override Type GetQpClientType() => typeof(QpPipelineClient);
30+
31+
protected override void LoadFromUri(Uri uri)
32+
{
33+
ServerName =uri.Host;
34+
PipeName = uri.AbsolutePath.Replace("/", string.Empty);
35+
base.LoadFromUri(uri);
36+
}
3037

3138
protected override string ToUriBasic(HashSet<string> ignorePropertyNames)
3239
{

Quick.Protocol.SerialPort/QpSerialPortClientOptions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ public override void Check()
5050
public override string GetConnectionInfo() => PortName;
5151

5252
public override Type GetQpClientType() => typeof(QpSerialPortClient);
53+
54+
protected override void LoadFromUri(Uri uri)
55+
{
56+
PortName = uri.Host;
57+
base.LoadFromUri(uri);
58+
}
5359

5460
protected override string ToUriBasic(HashSet<string> ignorePropertyNames)
5561
{

Quick.Protocol.Tcp/QpTcpClientOptions.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ public override void Check()
4646

4747
public override Type GetQpClientType() => typeof(QpTcpClient);
4848

49+
protected override void LoadFromUri(Uri uri)
50+
{
51+
Host=uri.Host;
52+
Port=uri.Port;
53+
base.LoadFromUri(uri);
54+
}
55+
4956
protected override string ToUriBasic(HashSet<string> ignorePropertyNames)
5057
{
5158
ignorePropertyNames.Add(nameof(Host));

Quick.Protocol.WebSocket.Client/QpWebSocketClientOptions.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ namespace Quick.Protocol.WebSocket.Client
77
{
88
public class QpWebSocketClientOptions : QpClientOptions
99
{
10-
public const string URI_SCHEMA = "ws";
10+
public const string URI_SCHEMA_WS = "ws";
11+
public const string URI_SCHEMA_WSS = "wss";
1112

1213
/// <summary>
1314
/// WebSocket的URL地址
@@ -21,14 +22,20 @@ public override void Check()
2122
base.Check();
2223
if (Url == null)
2324
throw new ArgumentNullException(nameof(Url));
24-
if (!Url.StartsWith("ws://"))
25-
throw new ArgumentException("Url must start with ws://", nameof(Url));
25+
if (!Url.StartsWith(URI_SCHEMA_WS + "://") && !Url.StartsWith(URI_SCHEMA_WSS + "://"))
26+
throw new ArgumentException("Url must start with ws:// or wss://", nameof(Url));
2627
}
2728

2829
public override string GetConnectionInfo() => Url;
2930

3031
public override Type GetQpClientType() => typeof(QpWebSocketClient);
3132

33+
protected override void LoadFromUri(Uri uri)
34+
{
35+
Url = uri.ToString();
36+
base.LoadFromUri(uri);
37+
}
38+
3239
protected override string ToUriBasic(HashSet<string> ignorePropertyNames)
3340
{
3441
ignorePropertyNames.Add(nameof(Url));
@@ -37,7 +44,8 @@ protected override string ToUriBasic(HashSet<string> ignorePropertyNames)
3744

3845
public static void RegisterUriSchema()
3946
{
40-
RegisterUriSchema(URI_SCHEMA, typeof(QpWebSocketClientOptions));
47+
RegisterUriSchema(URI_SCHEMA_WS, typeof(QpWebSocketClientOptions));
48+
RegisterUriSchema(URI_SCHEMA_WSS, typeof(QpWebSocketClientOptions));
4149
}
4250
}
4351
}

Quick.Protocol/QpClientOptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public virtual QpClient CreateClient()
7777
return (QpClient)Activator.CreateInstance(GetQpClientType(), new object[] { this });
7878
}
7979

80-
private void loadFromUri(Uri uri)
80+
protected virtual void LoadFromUri(Uri uri)
8181
{
8282
if (string.IsNullOrEmpty(uri.Query))
8383
return;

0 commit comments

Comments
 (0)