How correct create web chat with rsocket?

I haw create web chat uses java for server and js for front, bu i am not understand next items:

  1. how give message for all chat users if send one ?
  2. how to transmit an event message in the user interface, if, for example, someone entered text in the text area and clicked send (roughly speaking, how to convert the event of someone’s input into a message and transmit it)?
    I would like to use the channel model.

That’s all I could write so far:

Server:

@Controller
public class SetUpController {
    @ConnectMapping("chat")
    public Mono<Void> handleSetUp(RSocketRequester requester, @Payload String token) {
        ControllerUtils.tokenRSocketRequesterMap.put(token, requester);

        return Mono.empty();
    }
}

@Controller
public class ChatController {
    protected JwtService jwtService;

    @ConnectMapping("chat")
    public Mono<Void> sendMessageForAll(Mono<Message> message) {
        message.doOnNext(m -> ControllerUtils.tokenRSocketRequesterMap
                .values()
                .forEach(requester -> requester
                        .route("chat")
                        .data(message, Message.class)
                        .send()));

        return Mono.empty();
    }
}

Client:

const {
  RSocketClient,
  JsonSerializer,
  IdentitySerializer,
  encodeRoute
} = require('rsocket-core');

const RSocketWebSocketClient = require('rsocket-websocket-client').default;
const WebSocket = require('ws');

function connect() {
  return new RSocketClient({
    serializers: {
      data: JsonSerializer,
      metadata: IdentitySerializer
    },
    setup: {
      keepAlive: 60000,
      lifetime: 180000,
      dataMimeType: 'application/json',
      metadataMimeType: 'message/x.rsocket.routing.v0',
    },
    transport: new RSocketWebSocketClient({
      url: 'ws://localhost:8080/tweetsocket',
      wsCreator: (url) => {
        return new WebSocket(url)
      }
    }),
  })
    .connect();
}

const client = connect()

client.subscribe({
  onComplete: socket => {
    socket.requestChannel({
      data: Buffer(JSON.stringify(createAndSendMessage())),
      metadata: encodeRoute('chat')
    }).subscribe({
      onComplete: () => console.log('complete'),
      onError: error => {
        console.log(error);
      },
      onNext: payload => {
        createAndDrawMessage()
      },
      onSubscribe: subscription => {
        subscription.request(2147483647);
      },
    });
  },
  onError: error => {
    console.log(error);
  },
  onSubscribe: cancel => { }
});

class Message {
  sender
  text
  date

  constructor(sender, text, date) {
    this.sender = username
    this.text = password
    this.date = date
  }
}