Я почти уверен, что вам не нужен сокет для того, что вам нужно.
Если мое понимание вопроса достаточно хорошее, вы можете просто добавить параметр, чтобы отделить тип возвращаемого значения
app.post('/ring', (request, response)=>
{
console.log(request.body);
const data=request.body;
if(!data)
{
//if data is not sent then error status
return response.status(400).send('bad request');
}
if(data.returnType === 'html'){
response.sendFile(path.join(__dirname + '/index.html'));
} else {
response.status(200).send('ringing');
}
})
returnType - это параметр POST для разделения типов возврата.
обновление:
если вы хотите обновить свой индекс
app.post('/ring', (request, response)=>
{
console.log(request.body);
const data=request.body;
if(!data)
{
//if data is not sent then error status
return response.status(400).send('bad request');
}
if(data.returnType === 'html'){
response.sendFile(path.join(__dirname + '/index.html'));
} if(data.returnType === 'json'){
// Business logic here
let result = { a: 'aez' };
return response.json(result);
} else {
response.status(200).send('ringing');
}
})
А в вашем html
<body>
<script>
$("#envoyer").click(function(){
$.ajax({
url : 'send_mail.php',
type : 'POST',
data : 'dataType=json'
success: handle
});
});
function handle(result, status)
{
//setting the text extracted from json object
$(“#result”).append(`<div> ${result.a} </div>`)
}
</script>
</body>