我正在将一些函数导入到server.js文件中,并且希望能够从另一个文件中调用它们(我的客户端在另一个端口上运行-单击按钮即可-从React Front使用axios结束)。我也正在使用的套接字存在问题,因为我想知道如何将其实际发射到接收套接字。
我有我的intentTriggering.orderNumberResponse()(我想调用它),它在我的帖子结尾处进行了注释,因为如果我将其保留在那里,则在第一次建立连接时有效(不是来自发布请求),但是我只想在收到请求通过时调用它-所以我的问题分为两部分,如果我可以在我的“ app.post”中包含此intentTriggering.orderNumberResponse()的地方使发布请求正常工作,我该怎么办?然后发出它作为范围之外的套接字?而且我也试图从我的客户端发布到此服务器地址,以在单击按钮后出现错误并触发错误:'net :: ERR_SSL_PROTOCOL_ERROR''未捕获(承诺)错误:网络错误'
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中发送。