0.6.0 • Published 1 year ago

@musubi/socket-io-link v0.6.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

@musubi/socket-io-link

Adapter for using Musubi with socket.io.

Documentation

Full documentation for musubi can be found here.

Installation

# npm
npm install @musubi/socket-io-link

# Yarn
yarn add @musubi/socket-io-link

Usage

// Server
import { createSocketIoServerLink } from '@musubi/socket-io-link/server';
import { createMusubi } from '@musubi/core';
import { schema } from '../schema';
import { Server} from 'socket.io';

async function main() {
  const server = new Server();
  
  const link = createSocketIoServerLink(server);
  const { receiver, client } = createMusubi({
    schema,
    clientLinks: [link.client],
    receiverLinks: [link.receiver],
  });

  receiver.handleQuery('ping', async (_, ctx) => {
    // Access client socket
    console.log(ctx.socket);
    
    // Send message to all clients
    // Note: It will always return void for now
    await client.query('pong')
    
    // Send query to sockets in specific room
    await client.query('pong', {
      roomId: 'room1',
    })
    
    // Send query to specific socket
    await client.query('pong', {
      socketId: ctx.socketId
    })
    
    // Send query to all sockets except the current one
    await client.query('pong', {
      socketId: ctx.socketId,
      isBroadcast: true,
    })
    
    // Above examples work for
    
    return 'pong'
  });
}

main().catch(console.error);
// Client
import { createSocketIoClientLink } from '@musubi/socket-io-link/client';
import { createMusubi } from '@musubi/core';
import { schema } from '../schema';
import io from 'socket.io-client';

async function main() {
  const socketClient = io('http://localhost:3000', {
    autoConnect: false,
  });
  
  const link = createSocketIoClientLink(socketClient);

  const { receiver, client } = createMusubi({
    schema,
    clientLinks: [link.client],
    receiverLinks: [link.receiver],
  });

  const result = await client.query('ping');
  console.log(result); // pong
}
0.5.0

1 year ago

0.6.0

1 year ago

0.4.5

2 years ago

0.4.4

2 years ago

0.4.7

2 years ago

0.4.6

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.3

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.2.0

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

1.0.0

2 years ago