簡體   English   中英

Socket.io 在使用 Express JS 的路由中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM