Таким образом, пытаясь следовать этому ответу здесь для настройки Socket.io для работы в экспресс-приложении с файлом / wwww и index.js в качестве маршрутизатора.(Ссылка: Использование socket.io в Express 4 и экспресс-генератора / bin / www )
ВЫПУСК : 1) Я могу подключиться к сокетувне роутера. пост.однако, когда я пытаюсь создать соединение внутри router.post для передачи результатов клиенту с сервера - я не могу подключиться.
Я не могу отправить асинхронные данные через socket.io
Консоль
a user connected index outside routerrr
Index.js
module.exports = function(io) {
io.on('connection', function(socket){
console.log('a user connected index outside routerrr');
});
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
router.post('/', async (req, res) => {
// Assign first query
searchedT = req.body.searchTerm;
queries.push(req.body.searchTerm);
// Invoke the async iterator
console.log("start....");
const results = await queryIterator(queries, async function(result) {
console.log("--->" + await result);
// Trying to connect to socket and send async data!!!!
io.on('connection', function(socket) {
console.log('a user connected inside routerrr');
socket.on('sentiment result', async function(result){
io.emit('sentiment result', await result);
});
});
// res.send(await result);
});
// res.send(result);
});
return router;
}
script.js
var socket = io();
function sendForm() {
let form = $('#message-entry');
let query = form.serialize();
$.post('/', query, async function (data) {
const results = await data;
$(function () {
// var socket = io();
socket.on('sentiment result', function(result){
$('#sentimentScore').text(result.sentimentResults.sentiment.score);
});
});
});
}