将输出重定向到Websocket服务器

时间:2018-11-16 18:40:39

标签: powershell websocket pipe

是否可以使用Powershell将可执行文件的输出重定向到Websocket服务器?我尝试使用Tee-Object,但只能输出到文件或变量。

到目前为止,我的websocket和可执行文件是分开工作的,如何将输出传递给websocket客户端?

$WS = New-Object System.Net.WebSockets.ClientWebSocket                                                
$CT = New-Object System.Threading.CancellationToken                                                   

$Conn = $WS.ConnectAsync("localhost:8080", $CT)                                                  
While (!$Conn.IsCompleted) { Start-Sleep -Milliseconds 100 }


#How do I continue here?

$WS.SendAsync(...)
myprocess.exe | Tee -Variable ...

1 个答案:

答案 0 :(得分:1)

我认为myprocess.exe正在生成您想通过WS发送的消息。要捕获并发送这些消息,您可以使用foreach:

myprocess.exe | foreach { $WS.SendAsync($_) }

您还可以创建自己的cmdlet,以接受来自管道的输入

function Send-WS { begin { ...define $WS} process { $WS.Send } End { ..do smth at the end} }
myprocess.exe | Send-WS