Я импортирую некоторые функции из моего файла server.js и хочу, чтобы их можно было вызывать из другого файла (мой клиент, работающий на другом порту - одним нажатием кнопки) - используя axios с реагировать спередиконец).У меня также есть проблема с сокетами, которые я использую, так как мне интересно, как я смогу на самом деле передать на принимающий сокет.
У меня есть intentTriggering.orderNumberResponse () (который я хочу вызвать), который комментируется в конце моего сообщения, потому что, если я оставлю его там, он будет работать, когда соединение будет установлено впервые (не из почтового запроса), но я хочу вызывать его только при получении запроса - так что мойвопрос состоит из двух частей, если я могу получить почтовый запрос, работающий, где этот intentTriggering.orderNumberResponse () заключен в моем app.post, как я могу тогда передать в сокет как вне его области?а также я пытаюсь отправить на этот адрес сервера от моего клиента, чтобы вызвать эту функцию после нажатия кнопки, и я получаю сообщение об ошибке: 'net :: ERR_SSL_PROTOCOL_ERROR' 'Uncaught (в обещании) Ошибка: ошибка сети'
server.js:
const intentTriggering = require('./Assets/ApiCalls/intentTriggering')
const shopifyApiRequest = require('./Assets/ApiCalls/shopifyApiRequest')
const port = 3400;
const server = app.listen(port, () => console.log(`Example app listening on port ${port}!`))
var response = 'DUGGY'
app.get('/', (req, res) => res.send('Hello World!'))
app.post('/matchingIntent', function (req, res) {
console.log('response from client - return button press' + res)
intentTriggering.orderNumberResponse()
});
const io = socket(server)
io.on('connection', (socket) => {
intentTriggering.initialResponse((response) => {
socket.emit('Response', ({ text: response }))
})
socket.on('Message', (message) => {
logmsg = {
"user": socket.id,
"domain": message.domain,
"msg": message.data.text,
message
}
console.log('Made a connection!' + socket.id)
/*
DialogFlow conversation logic imported below.
*/
dialogFlowConnection.dialogFlowConversationClient(socket, message, (response) => {
socket.emit('Response', ({ text: response }))
})
})
// initiated by return button -
intentTriggering.matchingResponse((response) => {
socket.emit('Response', ({ text: response }))
})
shopifyApiRequest.matchRequestThenGetRefundCalculationApiCall((response) => {
socket.emit('Response', ({ text: response }))
})
})
мой клиент пытается отправить сообщение:
class Button extends Component {
intentTriggerMatching() {
const matching = {
reason: 'intiate matching'
};
console.log('button has been pressed');
axios.post(`https://localhost:3400/matchingIntent`, { matching })
.then(res => {
console.log(res);
console.log(res.data);
})
}
render() {
return (
<div>
<button onClick={this.intentTriggerMatching}>Return</button>
</div>
)
}
}
мой ожидаемый результат заключается в том, что почтовый запрос будет работать и ответиз функции будет отправлен в socket.emit.