Параметр функции libwebsockets libwebsocket_client_connect

Это подпись libwebsocket_client_connect(),

struct libwebsocket * libwebsocket_client_connect (struct libwebsocket_context * context, const char * address, int port, int ssl_connection, const char * path, const char * host, const char * origin, const char * protocol, int ietf_version_or_minus_one)

И по этим параметрам меня смущает то, что host а также origin являются.

в описании параметра это говорит

host : Hostname on server
origin : Socket origin name

Кажется, доменное имя или IP-адрес сервера и клиента каждого.

И только когда я ставлю 127.0.0.1 или localhost, он работает нормально (так как я тестировал на localhost и сервер websocket, и клиента)

Но если это так, я думаю, что у функции уже есть поле адреса для IP-адреса сервера или доменного имени, почему у нее, вероятно, есть дублированное поле?

1 ответ

Решение

Хост http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Поле заголовка запроса хоста указывает интернет-хост и номер порта запрашиваемого ресурса, полученного из исходного URI, предоставленного пользователем или ссылающимся ресурсом (обычно HTTP-URL).

Происхождение https://tools.ietf.org/html/rfc6454

При включении в HTTP-запрос поле заголовка источника указывает
источник (и), который "заставил" пользовательский агент выдать запрос, как
определяется API, который вызвал пользовательский агент для выдачи
запрос.

Хост является целью запроса, а источник - доменом, в котором был создан клиент websocket. Например, если у вас есть страница на example1.com, и эта страница открывает веб-сокет для example2.com, то example1.com будет источником, а example2.com - хостом.

Другие вопросы по тегам