emit method
发送事件帧
Implementation
Future<void> emit(String event, dynamic payload) async {
final channel = _channel;
if (channel == null || !_connected) {
throw GoChatException('WebSocket 未连接');
}
final frame = <String, dynamic>{'event': event};
if (payload != null) frame['payload'] = payload;
final plain = jsonEncode(frame);
final envelope = await AesEnvelope.encrypt(plain, _aesKey);
GoChatLogger.d('WS → $event');
channel.sink.add(jsonEncode(envelope));
}