netty websocket 请教 已解决
本帖最后由 ppgjx 于 2022-5-20 22:06 编辑我使用netty websocket本地启动后 我使用wecsocket在线测试我打开了网页两个标签页 都链接了这个服务 这时候好像就紊乱了 我数据的处理代码是这样的 遍历所有链接的客户端 判断是不是自己 如果不是则发送信息 如果是自己则发送 "自己" 两个字符串 如图1 发送了蔡徐坤 图1自己收到了蔡徐坤 和自己两条信息 图二就没有任何消息 这是哪里问题呢?
package com.ppgjx.app.netty.test;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.channel.group.ChannelGroup;
import io.netty.channel.group.DefaultChannelGroup;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
import io.netty.util.concurrent.GlobalEventExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
@Component
@Slf4j
public class TestChannelHandler extends SimpleChannelInboundHandler<TextWebSocketFrame> {
//用户id=>channel示例
//可以通过用户的唯一标识保存用户的channel
//这样就可以发送给指定的用户
public static ChannelGroup clients = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
//客户端断开链接
@Override
public void handlerRemoved(ChannelHandlerContext ctx) throws Exception {
System.out.println("客户端断开连接 --- " + ctx.channel().id() );
clients.remove(ctx.channel());
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
System.out.println("channelRead");
super.channelRead(ctx, msg);
}
@Override
protected void channelRead0(ChannelHandlerContext ctx, TextWebSocketFrame msg) throws Exception {
//获取客户端消息
String context = msg.text();
System.out.println("数据 ---" + context);
//通知所有客户端
// clients.writeAndFlush(new TextWebSocketFrame(LocalDate.now() + " " +ctx.channel().id().asShortText() + " 消息内容 --- " + context + " 在线客户 -- " + clients.size()));
clients.forEach(ch -> {
System.out.println(ch.id().asLongText());
//自己不发送
if(ctx.channel() != ch){
ctx.writeAndFlush(new TextWebSocketFrame(context));
}else {
ctx.writeAndFlush(new TextWebSocketFrame("自己"));
}
});
}
//客户端建立连接
@Override
public voidhandlerAdded(ChannelHandlerContext ctx) throwsException{
System.out.println("客户端建立连接 --- " + ctx.channel().id() );
//添加channels
clients.add(ctx.channel());
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
System.out.println("异常 --- " + ctx.channel().id());
ctx.channel().close();
clients.remove(ctx.channel());
}
}
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1604011&highlight=%CD%F2%C4%DC%B8%F1%CA%BD
大哥 ,你的音频视频图片万能格式转换 工具很好用,就是转换MP3的音质压缩的好厉害,请问在哪里可以调整参数啊 a526600908 发表于 2022-5-21 10:25
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1604011&highlight=%CD%F2%C4%DC%B8%F1%CA%BD
大 ...
你用格式工厂呗 音频这块我也不清楚 我这边就是对ffmpeg进行的封装 理论上都是无损转换的 自己写个web测试下吧...貌似是限制了客户端吧,不能是同一个ip调试吧
页:
[1]