GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo envío un mensaje a mi socket.io websocket desde la línea de comando en Linux?

Puede escribir un cliente simple como este (llamémoslo client sin extensión):

#!/usr/bin/env node
const socket = require('socket.io-client')('http://localhost:3000');
const someDelay = 10;
socket.on('connect', function () {
    console.log('connected...');
    if (process.argv[2] && process.argv[3]) {
        console.log('sending ' + process.argv[2] + ': ' + process.argv[3]);
        socket.emit(process.argv[2], process.argv[3]);
        setTimeout(() => {
            process.exit(0);  
        }, someDelay);
    } else {
        console.log('usage: ./client.js <event> <data>');
        process.exit(1);
    }
});

con un package.json muy básico

{
  "name": "client",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "client"
  },
  "dependencies": {
    "socket.io-client": "^1.4.6"
  }
}

Luego ejecuta npm install , da client permisos para ser ejecutado y puede ejecutarlo con (por ejemplo) ./client message testControl

¿Qué piensas?;)


Puede usar el cliente iocat cli de npm que se basa en Socket.IO.

$ iocat --socketio ws://127.0.0.1:8081
< Hello there

Para una solución de nivel más bajo (independiente de socket.io), puede usar mi herramienta websocat.

Sesión de ejemplo para comunicarse con el ejemplo de chat de socket.io:

$ websocat 'wss://socket-io-chat.now.sh/socket.io/?transport=websocket'
< 0{"sid":"yGVElkNCXVgc5w_JOVtc","upgrades":[],"pingInterval":25000,"pingTimeout":60000}
< 40
> 2
< 3
> 42["add user", "websocat"]
< 42["login",{"numUsers":15}]
> 42["new message", "Hello from websocat"]
< 42["typing",{"username":"1223"}]
< 42["new message",{"username":"1223","message":"Reply from browser."}]
< 42["stop typing",{"username":"1223"}]
> 42["new message", "OK, may flood again."]

> denota mensajes a escribir.


Pude solucionar esto haciendo lo siguiente:

  1. Cree un nuevo punto final en su servidor

    app.post('/sendSocketMessage', function(req, res){
      console.log("Request is "+JSON.stringify(req.body));
      socketManager.parse(req.body); //send message directly to your socket parser
      res.status(200).send("OK");
    });
    
  2. Enviar datos usando curl

    curl --noproxy localhost, 
         -X POST 
         --data "data=testControl,loadModels,start," 
         http://localhost:8081/sendSocketMessage
    

Linux
  1. Cómo instalar software desde la línea de comandos de Linux

  2. ¿Cómo actualizar registros A desde la interfaz de línea de comandos en Linux?

  3. ¿Cómo puedo copiar una carpeta desde la línea de comandos de Linux?

  4. Cómo ejecutar TeX desde la interfaz de línea de comandos en Linux

  5. cómo generar una dirección MAC aleatoria desde la línea de comandos de Linux

Envía y recibe Gmail desde la línea de comandos de Linux

Programe hardware desde la línea de comandos de Linux

Cómo buscar archivos desde la línea de comandos de Linux

Eliminar directorio en Linux:cómo eliminar una carpeta desde la línea de comandos

¿Cómo crear un cuadro de mensaje desde la línea de comandos?

Enviar correo electrónico en Linux desde la línea de comandos