Как я могу получать данные с помощью socket.io?

Я запускаю сервер с помощью expressjs. Всякий раз, когда пользователь обращается к одному из моих конкретных URL-адресов (для этой цели представьте, что это будет https://server.com/test), я хочу отправить данные на другой веб-сервер с помощью socketio, прослушать данные и ответить пользователю данными, которые я получил. .

Несколько замечаний:

  1. Мой сервер не ожидает ничего, кроме доступа к URL-адресу https://server.com/test.
  2. Другой сервер, к которому я хочу подключиться с помощью socket.io и получить данные, ожидает, что я отправлю аргумент {"got" : "true"} параметру "test".
  3. Когда другой сервер получает излучение сокета от моего сервера в параметре "test" с указанными выше аргументами, он просто отвечает аргументом {"message" : "true"}.

Мой код довольно прост и выглядит так (роутер):

const express = require("express");
const router = express.Router();
//const Goal = require("../models/battery_message");
const mongoose = require("mongoose");
const io = require("socket.io-client");

const host = "https://another_server.com"
const socket = io(host, {query:"[email protected]"});
console.info("connected");


router.get('/', function(req,res) {
    socket.emit("test_me", {"got" : "true"}, function(data){
        exists = data;
        console.info(data);
    });
});

module.exports = router;

У меня проблема в том, что всякий раз, когда пользователь обращается к моему серверу на https://server.com/test, ничего не происходит, поскольку ответ не приходит, как в бесконечном цикле. Я предполагаю, что мне нужен какой-то другой socket.emit, потому что другой сервер, вероятно, тоже отправляет свой ответ на сокет, но я могу ошибаться.

Подводя итог, мой вопрос: что мне нужно добавить, чтобы успешно получить ответ от другого сервера?

Почему вы хотите использовать socket.io для соединения сервер-сервер? Похоже, все, что вам нужно, это простой HTTP-запрос. Пожалуйста, дайте еще немного контекста. Как настроен этот второй сервер? Это сервер только для сокетов? Вы контролируете это? Почему эта запутанная установка?

Chris G 29.11.2018 16:00

@ChrisG Если честно, я не проверял с помощью простых HTTP-запросов, но я знаю, что идея сервер-сервер выглядит глупо, мне это просто нужно для демонстрации, и я буду переделывать ее позже. Что касается управления, то у меня нет для второго сервера. Если мы говорим о HTTP-запросах, могу ли я проверить это, просто сделав запрос GET с указанными аргументами?

aikhs 29.11.2018 16:05

@ChrisG Второй сервер также ожидает электронной почты в качестве аргумента

aikhs 29.11.2018 16:09

Извините за вопрос, но действует ли второй сервер как сервер сокетов? Я полагаю, вы знаете, что это должно быть специально настроено таким образом. Кто контролирует 2-й сервер? Это сайт? Но да, просто используйте HTTP-запросы. Не похоже, что сервер 2 должен иметь возможность отправлять сообщения серверу 1, что является единственным вариантом использования сокетного соединения здесь.

Chris G 29.11.2018 16:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
75
0

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