1.0.1 • Public • Published

AdonisJs WebSocket

Coverage Status Build Status

Adonis Websocket is the official **websockets** provider for AdonisJs. It lets you easily setup/authenticate channels and rooms with elegant syntax and power of ES2015 generators.🚀

## Setup Follow the below instructions to setup this provider


npm i --save adonis-websocket

Setting up the provider

All providers are registered inside start/app.js file.

const providers = [

Setting up the alias

Aliases makes it easier to reference a namespace with a short unique name. Aliases are also registered inside start/app.js file.

const aliases = {
  Ws: 'Adonis/Addons/Ws'

Setup process is done. Let's use the Ws provider now.

Create file socket.js and ws.js

  • In folder start create file socket.js and ws.js
touch start/socket.js
touch start/ws.js
  • socket.js register chanel
  • ws.js kennel of websocket, i be can config middleware in here

Chanel Base

  • Create Channel base listen connection to path of websocket, in file socket.js
const Ws = use('Ws')

// Ws.channel('/chat', function (contextWs) {
Ws.channel('/chat', function ({ socket }) {
  // here you go

Add Middleware

  • Config in file ws name and global

Middlleware global

const Ws = use('Ws')

const globalMiddlewareWs = [

const namedMiddlewareWs = {
  auth: 'Adonis/Middleware/AuthWs'


Middleware Channel

  • we have two middleware default is Adonis/Middleware/AuthInitWs and Adonis/Middleware/AuthWs using authentication is compatible with Adonis Auth
Ws.channel('/chat', function ({ socket }) {
  // here you go
}).middleware(<name middleware | function>)
  • middleware function
Ws.channel('/chat', function ({ socket }) {
  // here you go
}).middleware(async fuction(context, next) {
  await next();

Create ControllerWs

Create controller websocket is a Chanel

  adonis make:controller <Name>

and select

> For Websocket channel

Struct Controller Ws

  • You can see controller in folder app\Controllers\Ws
'use strict'

class LocationController {
  // constructor (ContextWs) {
  constructor ({ socket, request }) {
    this.socket = socket
    this.request = request

  // listion event `ready`
  onReady () {
    this.socket.toMe().emit('my:id', this.socket.socket.id)

  joinRoom(ContextWs, payload) {


  leaveRoom(ContextWs, payload) {


module.exports = LocationController

Structs ContextWs

  • Structs object ContextWs

Attribute socket

  • auth is Object AddonisSocket
  • attribute io of socket.io
  • attribute socket of socket.io when client connect to Chanel
  • method id is id of socket
  • method rooms get list room
  • method on is socket.on
  • method to get socket of id connect
  • method join and leave is room
  • method disconnect disconnect chanel

Attribute auth

  • auth is Adonis Auth

Attribute request

  • request is Adonis request

In favor of active development we accept contributions from everyone. You can contribute by submitting a bug, creating pull requests or even improving documentation.

You can find a complete guide to be followed strictly before submitting your pull requests in the Official Documentation.

Package Sidebar


npm i @xaamin/adonis-ws

Weekly Downloads






Unpacked Size

46.3 kB

Total Files


Last publish


  • xaamin