Я использую сервер с помощью expressjs.Всякий раз, когда пользователь обращается к одному из моих конкретных URL (для этого просто представьте, что это будет https://server.com/test
), я хочу передать данные на другой веб-сервер с помощью socketio, прослушать данные и ответить пользователю данными, которые ябыли получены.
Несколько замечаний:
- Мой сервер ожидает только доступ к URL-адресу
https://server.com/test
. - Другой сервер, к которому я хочу подключиться с помощью socket.io и получить данные, ожидает, что я отправлю аргумент
{"got" : "true"}
параметру "test"
. - Когда другой сервер получает от моего сервера сокет emit для параметра "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=edmund@gmail.com"});
console.log("connected");
router.get('/', function(req,res) {
socket.emit("test_me", {"got" : "true"}, function(data){
exists = data;
console.log(data);
});
});
module.exports = router;
Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда пользователь обращается к моему серверу по https://server.com/test
, ничего не происходит, поскольку никакой ответ не поступает, как в бесконечном цикле.Я предполагаю, что мне нужен какой-то другой socket.emit, потому что другой сервер, вероятно, тоже отправляет свой ответ сокету, но я могу ошибаться.
Итак, подведем итог: у меня вопрос: что мне нужно добавить, чтобы успешно получить ответ от другого сервера?