Имеется следующая проблема. В gawk для работы с tcp есть специальный файл "/inet/tcp/port/remotehost/remoteport". В него можно писать и из него можно читать.
Как работает WebSocket:
1) Клиент отправляет серверу хэндшейк к ключом в виде HTTP- заголовка
2) Сервер особым способом преобразует ключ клиента и отвечает аналогичным HTTP- заголовком
3) После получения ответа сервера клиент оставляет tcp коннект открытым. Теперь они могут обмениваться фреймами.
Собственно, хэндшейк проходит, сервер отправляет клиенту сообщения (и тот их даже получает), а вот когда я пытаюсь прочитать из файла (порта) ответ, то.. awk его не читает! То есть зависает на getline.
BEGIN {
#SETTINGS
RS = ORS = "\r\n"
port = 8089
host = "/inet/tcp/" port "/0/0" # host string
#END OF SETTINGS
receive_handshake(header, host)
#lets do it
# 1) Calculate hash
hash = calculate_hash(header["Sec-WebSocket-Key"]);
# 2) ????
# 3) send an answer
answer_handshake(hash, host)
# print frame |& host
frame = dataframe_encode("user")
# проблема начинается здесь:
answer = ""
host |& getline answer
printf answer
data = dataframe_decode(frame,unmasked)
close(host)
}