首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netty闪存XmlSocket消息接收错误

Netty闪存XmlSocket消息接收错误
EN

Stack Overflow用户
提问于 2012-06-07 00:29:34
回答 1查看 528关注 0票数 1

我正在netty中创建我自己的flash游戏服务器。我在端口843中使用flash策略服务器,在8080中使用游戏服务器端口...此外,我对帧生成器使用了零定界器;但是,当我在flash客户端上接收消息时,我收到了两条消息,而不是一条消息。第一条消息是我应该得到的真实消息;然而,第二条消息是空消息。如何避免在网络端收到第二条消息?

谢谢,

在下面的内容中,您可以查看my ChannelPipelineFactory...

代码语言:javascript
复制
    public class SocketServerPipelineFactory implements ChannelPipelineFactory {

    public ChannelPipeline getPipeline() throws Exception {
        PlayerController controller = PlayerController.createPlayerController();

        ChannelPipeline pipeline = Channels.pipeline();

        pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192,
                zeroDelimiter()));
        pipeline.addLast("decoder", new StringDecoder(CharsetUtil.UTF_8));
        pipeline.addLast("encoder", new StringEncoder(CharsetUtil.UTF_8));

        pipeline.addLast("handler", new SocketServerHandler(controller));

        return pipeline;
    }

    public static ChannelBuffer[] zeroDelimiter() {
        return new ChannelBuffer[] { ChannelBuffers.wrappedBuffer(new byte[] { '\0' }),
                ChannelBuffers.wrappedBuffer(new byte[] { '\r', '\n' }) };
    }

}
EN

回答 1

Stack Overflow用户

发布于 2012-06-08 02:21:42

我认为你应该使用nul delimiter而不是0。这是一个为闪存策略文件提供服务的netty game serverpolicy server以843的速度运行。下面粘贴的是相关的弹簧配置,这里是供参考的policy file decoder

代码语言:javascript
复制
<!-- Configure the Flash policy server. By default it runs at 843 -->
<bean id="flashPolicyServer" class="org.menacheri.jetserver.server.netty.FlashPolicyServer"
    init-method="createServerBootstrap" destroy-method="stopServer">
    <property name="pipelineFactory" ref="flashPolicyServerPipelineFactory"></property>
    <property name="gameAdminService" ref="gameAdminService"></property>
    <property name="portNumber" value="${flash.policy.port}"></property>
</bean>

<!-- All the pipeline factory beans are now defined -->
<bean id="flashPolicyServerPipelineFactory" class="org.menacheri.jetserver.server.netty.FlashPolicyServerPipelineFactory">
    <lookup-method name="getFlashPolicyServerHandler" bean="flashPolicyServerHandler"/>
    <property name="timer" ref="hashedWheelTimer"></property>
</bean>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10918285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档