2015-10-02 4 views
0

Я хотел бы передать данные через соединение WebSocket с помощью Yaws. Я прочитал документацию Yaws о Streaming Data и Web Sockets, и я нашел функцию API Yaws ниже, которые кажутся уместным:Как передавать данные через WebSockets с помощью Yaws?

yaws_api:websocket_send(Pid, {text, <<"hi there!">>}). 

yaws_api:stream_chunk_deliver(YawsPid, BinData). 

yaws_api:stream_chunk_end(YawsPid). 

Но это не ясно, как они связаны между собой, или даже если они связаны между собой. Может ли кто-нибудь объяснить, как передавать несколько фрагментов данных через соединение с веб-сервером Yaws, чтобы получатель видел все фрагменты как одно фрагментированное сообщение?

ответ

0

Поток потока Yaws ориентирован на приложения, которые отправляют ответы HTTP, которые имеют неизвестную длину содержимого во время отправки заголовков ответов, и поэтому хотят использовать HTTP-канал или приложения, которые хотят избежать буферизации всего содержимого ответа или использования кометы ответы в стиле. WebSocket не имеет таких же ограничений по отношению к отправке данных. Однако для потоковой передачи требуется использовать yaws_api:websocket_send/2 с типом записи #ws_frame{}fin для false для каждого фрагмента потока до последнего фрагмента, где он должен быть true. Вы можете найти примеры веб-рассылок Yaws в Yaws source code examples directory, которые могут помочь.

+0

Спасибо за ваш ответ, я попробую yaws_api: websocket_send/2 с #ws_frame {} – chengweichao

Смежные вопросы