mateclaw/mateclaw-server/src/main/java/vip/mate/channel/web/WebChannelAdapter.java
matevip 579d60125b Initial commit: MateClaw — Java + Vue 3 AI Assistant System
Full-stack AI assistant built on Spring AI Alibaba.
Features: ReAct Agent, Plan-and-Execute, MCP Protocol, Multi-Model, Multi-Channel.

Apache-2.0 License
2026-04-04 19:03:49 +08:00

55 lines
1.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package vip.mate.channel.web;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import vip.mate.channel.AbstractChannelAdapter;
import vip.mate.channel.ChannelMessage;
import vip.mate.channel.ChannelMessageRouter;
import vip.mate.channel.model.ChannelEntity;
/**
* Web 渠道适配器
* <p>
* Web 渠道是 MateClaw 的默认渠道,通过 HTTP API 和 SSE 与前端交互。
* 不同于 IM 渠道Web 渠道不需要长连接,消息通过 ChatController 直接处理。
* 此适配器主要提供统一的生命周期管理和消息格式兼容。
*
* @author MateClaw Team
*/
@Slf4j
public class WebChannelAdapter extends AbstractChannelAdapter {
public static final String CHANNEL_TYPE = "web";
public WebChannelAdapter(ChannelEntity channelEntity,
ChannelMessageRouter messageRouter,
ObjectMapper objectMapper) {
super(channelEntity, messageRouter, objectMapper);
}
@Override
protected void doStart() {
// Web 渠道无需额外启动HTTP 端点由 Spring MVC 管理
log.info("[web] Web channel ready (HTTP/SSE endpoints managed by Spring MVC)");
}
@Override
protected void doStop() {
// Web 渠道无需显式停止
log.info("[web] Web channel stopped");
}
@Override
public void sendMessage(String targetId, String content) {
// Web 渠道的消息发送通过 SSE 或 HTTP 响应完成,
// 此方法仅用于主动推送场景(如定时任务),可通过 WebSocket 实现
log.debug("[web] sendMessage to {}: {}chars (push not implemented, use SSE)",
targetId, content != null ? content.length() : 0);
}
@Override
public String getChannelType() {
return CHANNEL_TYPE;
}
}