请选择 进入手机版 | 继续访问电脑版

默认
发表评论 1
[已回复]求教MobileIMSDK的服务端,用ServerBootstrap是TCP吧,怎么是UDP?
大家好,最近发现MobileIMSDK,请教一个问题,我查看netty版本代码,服务器是用的ServerBootstrap,但是我搜索这个是tcp的实现方式,请问netty实现的server 怎么区分tcp和udp

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:MobileIMSDK
上一篇:[已回复] MobileIMSDK服务端udp端口、防火墙已开,但无法收到客户端登陆
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
推荐方案
评论 1
用什么协议是channle里指定的,

比如下面这段是MobileIMSDK的UDP实现:
protected ServerBootstrap initServerBootstrap4Netty()
    {
    	return new ServerBootstrap()
    		// 设置并绑定Reactor线程池
    		.group(__bossGroup4Netty, __workerGroup4Netty)
    		// 设置并绑定服务端Channel
    		.channel(MBUDPServerChannel.class)
    		// 初始化针对客户端的handler链
    		.childHandler(initChildChannelHandler4Netty());
    }

下面这段是MobileIMSDK的TCP实现:
protected ServerBootstrap initServerBootstrap4Netty()
    {
    	//** 新建启动器
        ServerBootstrap bootstrap = new ServerBootstrap()
			// 设置并绑定Reactor线程池
			.group(__bossGroup4Netty, __workerGroup4Netty)
			// 设置并绑定服务端Channel
			.channel(NioServerSocketChannel.class)
			// 初始化针对客户端的handler链
			.childHandler(initChildChannelHandler4Netty());
        
        
        //** 设置TCP参数
        // 设置待决accept连接的最大个数(资料:[url]https://blog.csdn.net/fd2025/article/details/79740226[/url])
        bootstrap.option(ChannelOption.SO_BACKLOG, 4096);
        // 维持链接的活跃,清除死链接
        bootstrap.childOption(ChannelOption.SO_KEEPALIVE, true);
        // 关闭延迟发送
        bootstrap.childOption(ChannelOption.TCP_NODELAY, true);
    	
    	return bootstrap;
    }

你仔细看一下区别。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部