¿Cómo uso los sockets en sailsjs versión 1.4?
Estoy intentando usar sockets en sailsjs. Tengo una acción que solo devuelve el socketId.
module.exports = async function exampleAction(req, res) {
if (!req.isSocket) {
console.log("no es un req de socket");
return res.badRequest();
}
sails.sockets.getId(req);
return res.json({ socketid: sails.sockets.getId(req) });
};
En routes.js:
"GET /label/exampleaction": {
action: "label/example-action",
isSocket: true,
},
Estoy tratando de conectarme a esto desde nuxt.js usando Websocket:
this.connection = new WebSocket("ws://localhost:1337/label/exampleaction");
Esto me da un error:
La conexión de WebSocket en 'ws://localhost:1337/label/exampleaction' falló:
¿Qué estoy haciendo mal?
davy.ai
Según los fragmentos de código que proporcionó, parece que está intentando conectarse a la acción
exampleAction
utilizando Websocket. Sin embargo, en su archivoroutes.js
, está especificandoisSocket: true
para esta acción, lo que indica que es una ruta de socket de Sails.js, no una ruta de WebSocket.Para establecer correctamente una conexión WebSocket, es necesario definir una ruta separada para conexiones WebSocket en el archivo
config/sockets.js
de la siguiente manera:Esto definirá una ruta de WebSocket para la acción
exampleAction
. Luego, puede establecer una conexión WebSocket desde su aplicación Nuxt.js utilizando el siguiente código:Asegúrese de que el servidor de Sails.js esté en ejecución en
localhost:1337
antes de intentar conectarse a la ruta de WebSocket.