Skip to content

Commit 07850e0

Browse files
StartAutomatingStartAutomating
StartAutomating
authored and
StartAutomating
committed
feat: WebSocket.Client.ThreadJob.Send ( Fixes #89 )
1 parent 9bb9763 commit 07850e0

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

WebSocket.types.ps1xml

+49
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,54 @@
11
<!-- Generated with EZOut 2.0.6: Install-Module EZOut or https://github.com/StartAutomating/EZOut -->
22
<Types>
3+
<Type>
4+
<Name>WebSocket.Client.ThreadJob</Name>
5+
<Members>
6+
<ScriptMethod>
7+
<Name>Send</Name>
8+
<Script>
9+
&lt;#
10+
.SYNOPSIS
11+
Sends a WebSocket message.
12+
.DESCRIPTION
13+
Sends a message to a WebSocket server.
14+
#&gt;
15+
param(
16+
[PSObject]
17+
$Message
18+
)
19+
20+
function sendMessage {
21+
param([Parameter(ValueFromPipeline)]$msg)
22+
process {
23+
if ($msg -is [byte[]]) {
24+
[ArraySegment[byte]]$messageSegment = [ArraySegment[byte]]::new($msg)
25+
if ($null -ne $messageSegment -and $this.WebSocket.SendAsync) {
26+
$this.WebSocket.SendAsync($messageSegment, 'Binary', 'EndOfMessage',[Threading.Cancellationtoken]::None)
27+
}
28+
} else {
29+
$jsonMessage = ConvertTo-Json -InputObject $msg
30+
$messageSegment = [ArraySegment[byte]]::new($OutputEncoding.GetBytes($jsonMessage))
31+
if ($null -ne $jsonMessage -and $this.WebSocket.SendAsync) {
32+
$this.WebSocket.SendAsync($messageSegment, 'Text', 'EndOfMessage', [Threading.Cancellationtoken]::None)
33+
}
34+
}
35+
}
36+
}
37+
38+
if ($message -is [Collections.IList] -and $message -isnot [byte[]]) {
39+
$Message | sendMessage
40+
} else {
41+
sendMessage -msg $Message
42+
}
43+
44+
45+
46+
47+
48+
</Script>
49+
</ScriptMethod>
50+
</Members>
51+
</Type>
352
<Type>
453
<Name>WebSocket.ThreadJob</Name>
554
<Members>

0 commit comments

Comments
 (0)