繁体   English   中英

websocket socket.io dir nodejs

[英]websocket socket.io dir nodejs

我对 socket.io 和目录有疑问

我有一个 api 来验证登录 / jwt 等

我开始创建一个websocket服务器来创建一个joken po游戏,一个问题我已经有了这个api文件夹,我应该在这个里面创建我的websocket服务器吗? 还是为这个单独的 websocket 服务器创建另一个文件夹更好,它将消耗我的登录 api 和其他日期

以及必须通过 nodejs 上的 html 目录才能使用 socketio ex:

webApp.get ('/', (req, res, next) => {
res.sendFile (__ dirname + 'game.html'
});

如果我在与前端不同的文件夹中创建,我将如何进行通信? 例如:我在前端文件夹中的前端 我在后端文件夹中的后端

您可以使用现有的快速服务器来托管您的 socket.io 实例。 您可以重用所有相同的基础设施,并继续使用 jwt 令牌进行 socket.io 的身份验证。 看npm上的socketio-jwt package。

const socketioJwt = require('socketio-jwt');
const express = require('express');
const app = express();

// rest of your express config
...

const server = app.listen(PORT,
  console.log(`Server running in ${process.env.NODE_ENV} mode on port ${PORT}`)
);

const io = require('socket.io')(server);
io.use(socketioJwt.authorize({
  secret: 'your secret or public key',
  handshake: true
}));

io.on('connection', (socket) => {
  console.log('hello!', socket.decoded_token.name);

  socket.emit('hello', {message: 'hello world'});

  socket.on('myevent', myhandler);
});

理想情况下,您可以简单地使用 socket.io 进行所有后端通信。

在反应中,您只需导入socket.io 客户端,然后按如下方式连接:

let socket = null;

function App() {

  useEffect(() => {

    async function connect () {
       socket = io.connect('http://myserver');
    }
    connect();

  }, []);

  return (
    <div>
       Hello
    </div>
  );
}

export default App;

有很多内容要涵盖,这是一个广泛的问题,但是您现在有一些起点可以继续您的研究。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM