Dart - websocket.send()

Send a message to a connected websocket client.

import 'package:nitric_sdk/nitric.dart';
final socket = Nitric.websocket("socket");
await socket.send(connectionId, message);

Parameters

  • Name
    connectionId
    Required
    Required
    Type
    String
    Description

    The ID of the connection which should receive the message.

  • Name
    message
    Required
    Required
    Type
    Map<String, dynamic>
    Description

    The message that should be sent to the connection.

Examples

Broadcasting a message to all connections.

Do not send messages to a connection during it's connect callback, if you need to acknowledge connection, do so by using a topic

import 'package:nitric_sdk/nitric.dart';
final socket = Nitric.websocket("socket");
final connections = Nitric.kv("connections").allow([
KeyValueStorePermission.get,
KeyValueStorePermission.set,
KeyValueStorePermission.delete,
]);
socket.onConnect((ctx) async {
await connections.set(ctx.req.connectionId, {
// add metadata
"creation_time": DateTime.now(),
});
return ctx;
});
socket.onDisconnect((ctx) async {
await connections.delete(ctx.req.connectionId);
});
// broadcast message to all clients (including the sender)
socket.onMessage((ctx) async {
final conns = await connections.keys();
await Future.wait(await conns.map((conn) async {
// Send a message to a connection
return socket.send(conn, ctx.req.message);
}).toList());
return ctx;
});
Last updated on Dec 19, 2024