Мое приложение использует socket.io , насколько я понимаю, socket.io выполняется асинхронно.В большинстве случаев это не проблема, однако есть особый случай, когда 2 пользователя в моем приложении могут одновременно вызывать одну и ту же конечную точку сокета, и это вызывает проблемы.
Я бы предпочел, чтобыдля каждой конечной точки сокета ждать, пока одна из них не завершит выполнение, прежде чем она будет выполнена.Если они работают асинхронно, я получаю неожиданные результаты.
На сервере у меня есть следующее ...
// Establish a connection with a WebSocket.
io.on("connection", socket => {
socket.on("add_song", async (data) => {
PlaylistHandler.add_song(io, socket, data);
});
...
...
add_song
вызывается одновременно двумя разными io
соединения (2 разных пользователя).Я не хочу, чтобы функция PlaylistHandler.add_song
выполнялась параллельно для каждого, поэтому я попытался использовать async / await ...
await PlaylistHandler.add_song(io, socket, data);
Это ничего не решило, потому что я подозреваюэто потому, что есть два разных io
соединения, выполняющих вызов.
Есть ли способ заставить сам вызов сокета выполняться последовательно, а не параллельно?