Shuo/README.md

2.2 KiB

shout

Run your IRC client on a server and access it from the web browser. This gives you a persistent connection and allows you to chat from multiple devices at the same time.

Screenshot

And also..
Mobile interface

Install

  1. Install Node.js and NPM
    sudo apt-get -y install nodejs npm

  2. Clone the project from GitHub
    git clone http://github.com/erming/shout

  3. Open folder
    cd shout/

  4. Install Node packages
    npm install

  5. Run the server
    npm start or node index.js

  6. Open your browser
    http://localhost:9000

Commands

These are the commands currently implemented:

  • /ame
  • /amsg
  • /close
  • /connect
  • /deop
  • /devoice
  • /disconnect
  • /invite
  • /join
  • /kick
  • /leave
  • /me
  • /mode
  • /msg
  • /nick
  • /notice
  • /op
  • /part
  • /partall
  • /query
  • /quit
  • /raw
  • /say
  • /send
  • /server
  • /slap
  • /topic
  • /voice
  • /whoami
  • /whois

Events

Using Socket.IO
Events sent from the server to the browser:

// Event: "join"
// Sent when joining a new channel/query.
socket.emit("join", {
  id: 0,
  chan: {
    id: 0,
    name: "",
    type: "",
    network: "",
    count: 0,
    messages: [],
    users: [],
  }
});

// Event: "messages"
// Sent after the server receives a "fetch" request from client.
socket.emit("messages", {
  id: 0,
  msg: []
});

// Event: "msg"
// Sent when receiving a message.
socket.emit("msg", {
  id: 0,
  msg: {
    time: "",
    type: "",
    from: "",
    text: "",
  }
});

// Event: "networks"
// Sent upon connecting to the server.
socket.emit("networks", {
  networks: [{
    id: 0,
    host: "",
    nick: "",
    channels: [],
  }]
});

// Event: "part"
// Sent when leaving a channel/query.
socket.emit("part", {
  id: 0
});

// Event: "users"
// Sent whenever the list of users changes.
socket.emit("users", {
  id: 0,
  users: [{
    mode: "",
    name: "",
  }]
});

License

Available under the MIT license.