Если у вас есть пользовательский клиент (например, не веб-приложение в браузере), он может установить простое TCP-подключение к вашему серверу, если захочет. Но для каждой передачи по TCP нужен какой-то формат данных, который используют обе стороны (обычно называемый «протоколом»), поэтому обычно проще использовать существующий протокол, а не изобретать его заново. Такие вещи, как HTTP, webSocket, FTP и т. Д. - это протоколы, которые определяют действия, которые необходимо выполнить, и форматы данных.
Итак, обычно вы находите протокол, который хорошо соответствует тому, что вы пытаетесь сделать, и получаете существующую библиотеку для реализации этого протокола как на клиенте, так и на сервере. Это, как правило, сэкономит вам много работы по написанию и анализу данных, которые вы отправляете через соединение.
Какой протокол выбрать, полностью зависит от того, чего вы пытаетесь достичь с помощью соединения, которым вы не поделились, поэтому мы не можем давать никаких конкретных рекомендаций.
Я изначально думал использовать HTTP и websocket для выполнения этой задачи, но кто-то сказал мне, что я должен использовать TCP вместо HTTP / websocket.
Вы спросили их, почему они так говорили? HTTP чрезвычайно универсален и прост в использовании, но это протокол запроса / ответа (клиент A отправляет запрос, а сервер B предоставляет ответ, а затем соединение устанавливается). Это прекрасно работает для некоторых типов вещей, но не очень хорошо для других типов вещей.
webSocket фактически запускается через HTTP, а затем переключает протоколы в формат фрейма данных webSocket и представляет собой постоянное соединение, которое может быть долговечным и может отправлять данные в обоих направлениях. Например, клиент может подключиться к серверу через webSocket, а затем служба может отправлять обновления котировок акций каждые несколько секунд по мере их поступления на сервер. Клиент просто сидел и слушал обновления для поступления.
Поскольку я понятия не имею о TCP, скажите, пожалуйста, способен ли TCP только к этой задаче?
TCP, безусловно, способен. TCP - это транспортный уровень более низкого уровня, на котором построены многие другие вещи, такие как HTTP. Вы можете создавать практически любые типы сетей по протоколу TCP, но из-за низкого уровня вам придется самостоятельно разрабатывать множество коммуникационных механизмов. Обычно вы сначала ищете существующий протокол (который работает поверх TCP), который соответствует потребностям вашего соединения, и используете работу, которую уже сделал кто-то другой, вместо создания собственного протокола с нуля.