我的問題可能被標記為“基于意見”,但我想知道哪種方法最適合我的應用程式,因為我能夠以兩種方式做到這一點。
我正在構建聊天應用程式,其中用戶和對話保存在 MongoDB 中。我將讓我的反應應用程式使用 API/API。問題是——讓 REST API 和 Socket.io 應用程式分開運行會更好嗎?例如:
- 在埠 3005 上運行 REST API
- 讓 Socket.io 在埠 3006 上運行
React Application 分別使用這 2 個,基本上他們不會互相了解。我在 REST API 端點和 socket.io 中的端點只會在前端被呼叫。
另一方面,我可以讓我的 socket.io 應用程式和 REST API 在一個大應用程式中一起作業。我認為可以讓它毫無問題地作業。
綜上所述,乍一看我會采取第一種方法——更清潔、更易于維護。但我想聽聽其他意見,或者是否有人有類似的專案。通常,當您擁有 socket.io 和 REST API 時,這類專案中的東西是如何制作的?
uj5u.com熱心網友回復:
我會檢查這兩種情況的優缺點。例如,如果您有一個應用程式并且您不必關心哪些版本相互兼容,那么代碼和資源的可重用性會更好。另一方面,一個錯誤可能會殺死兩個應用程式,因此從安全角度來看,最好有單獨的應用程式。我認為這個決定取決于對你來說重要的利弊。
uj5u.com熱心網友回復:
你可以為這樣socket.io的邏輯制作一個單獨的檔案:
// socket.mjs file
import { Server } from "socket.io"
let io = new Server()
const socketApi = {
io: io
}
io.on('connection',(socket)=>{
console.log('client connected:', socket.id)
socket.join('modbus-room')
socket.on('app-server', data=>{
console.log('**************')
console.log(data)
io.to('modbus-room').emit('modbus-client', data)
})
socket.on('disconnect',(reason)=>{
console.log(reason)
})
})
export default socketApi
并將其添加到您的專案中,如下所示:
// index.js or main file
//...
import socketApi from "../socket.mjs";
//...
//
/**
* Create HTTP server.
*/
const server = http.createServer(app);
socketApi.io.attach(server);
//
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/471938.html
上一篇:Python套接字總是關閉
