Перенаправить вывод на сервер websocket - PullRequest
0 голосов
/ 16 ноября 2018

Можно ли перенаправить вывод исполняемого файла на сервер веб-сокетов с помощью powershell? Я пытался использовать 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 голосов
/ 16 ноября 2018

Я предполагаю, что myprocess.exe генерирует сообщения, которые вы хотите отправить через WS.Для перехвата и отправки этих сообщений вы можете использовать foreach:

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

Вы также можете создать свой собственный командлет, который будет принимать входные данные из конвейера

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