GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso inviare un messaggio al mio socket.io websocket dalla riga di comando in Linux?

Puoi scrivere un client semplice come questo (chiamiamolo client senza estensione):

#!/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 molto semplice

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

Quindi esegui npm install , dai client autorizzazioni da eseguire e puoi eseguirlo con (ad esempio) ./client message testControl

Cosa ne pensi?;)


Puoi utilizzare il client iocat cli da npm che si basa su Socket.IO.

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

Per una soluzione di livello più basso (indipendente da socket.io) puoi utilizzare il mio strumento websocat.

Esempio di sessione per comunicare con l'esempio di chat di 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 i messaggi da digitare.


Sono stato in grado di aggirare questo problema procedendo come segue:

  1. Crea un nuovo endpoint nel tuo server

    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. Invia dati utilizzando curl

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

Linux
  1. Configura un'area di lavoro Linux in remoto dalla riga di comando

  2. Come installare il software dalla riga di comando di Linux

  3. Come aggiornare un record dall'interfaccia della riga di comando in Linux?

  4. Come richiamare una macro di Openoffice dalla riga di comando di Linux?

  5. Come aprire il gestore AVD su Ubuntu Linux dalla riga di comando?

Invia e ricevi Gmail dalla riga di comando di Linux

Programma hardware dalla riga di comando di Linux

Come cercare file dalla riga di comando di Linux

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando

Come creare una finestra di messaggio dalla riga di comando?

Invia e-mail in Linux dalla riga di comando