[英]Socket.io in route with Express JS
我嘗試在路由中添加一個套接字,就像那樣。 但是當我在那里發射時,感覺它永遠不會進入 app.get() 。 是關於 expressJS 路由還是我不能做這樣的事情? 是否可以對 stream 使用變量?
app.get('/users/:iduser', function(req, res) {
console.log(req.params)
io.on( "connection", function ( socket ) {
console.log( 'Server: Incoming connection.' );
socket.on( req.params.iduser, function ( msg, callback ) {
console.log('Posts ')
console.log(msg);
} );
})
});
我嘗試像這樣發出:
const socket = io(`http://localhost:3012/users/iamtheiduser`);
socket.emit(iamtheiduser, {
idUser: iamtheiduser
});
是的,可以在 app.get() 內部發出一個套接字。 但首先,您需要正確監聽服務器並建立數據庫連接 DBName(如MongoDB、MYQSQL等)。 你用過。
然后使用io = require('socket.io').listen(server.listener);
而不是io(
http://localhost:3012/users/iamtheiduser );
然后創建一個套接字連接並檢查套接字是否連接成功。
io.on( "connection", function ( socket ) {
console.log( 'Server: Incoming connection.' );
socket.on( req.params.iduser, function ( msg, callback ) {
console.log('Posts ')
console.log(msg);
} );
})
您可以使用* socket.IO Tester Google-chrome Extension * 用於測試目的,檢查是否創建了套接字連接。 並且在該套接字連接成功完全建立之后,您就可以輕松地發出數據。 請參閱socket.io 文檔,它對您在 sockets 連接以及在客戶端和服務器端發出或收聽數據有幫助。 謝謝:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.