请教NETTY3一个疑惑,如何发送消息!?

lushan 发布于 2010/10/22 10:57
阅读 2K+
收藏 4

本人正在做短信通信协议的开发,搭建了一个NETTY的SERVER端,从短信中心获得消息后,想转发给客户端,但不知道怎么发送,客户端也是NETTY的已经和SERVER连接上了,客户端可以正常向SERVER发送和接受消息,说白了SERVER可以从Handler的messageReceived方法里向客户端回写消息,但单独向客户端发送消息如何做到?请高手指点一二啊 !

加载中
0
JavaGG
JavaGG

你的客户端是什么??是手机么?那发的是sms??

0
l
lushan

引用来自#2楼“JavaGG”的帖子

你的客户端是什么??是手机么?那发的是sms??

 客户端暂时也是用NETTY搭建的,是不是要在客户端连接服务器的时候把客户端的CHANNL拿到,回头主动调用这个CHANNL去发送消息?

0
motoyama57
motoyama57

请问下是读字节吗?

0
l
lushan

引用来自#4楼“motoyama57”的帖子

请问下是读字节吗?

 当然是读字节

0
高大全
我也有这方面的疑问,直接通过channel来写,如channel.write(obj) ,经常在客户端收不到,是否要另定义一个继承 ChannelDownstreamHandler的handleer才行?
0
周勇488
    @Override
    public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {
        // Send the initial messages.
        generateTraffic(e);
    }
    private void generateTraffic(ChannelStateEvent e) {
        // Keep generating traffic until the channel is unwritable.
        // A channel becomes unwritable when its internal buffer is full.
        // If you keep writing messages ignoring this property,
        // you will end up with an OutOfMemoryError.
        Channel channel = e.getChannel();
        while (channel.isWritable()) {
            ChannelBuffer m = nextMessage();
            if (m == null) {
                break;
            }
            channel.write(m);
        }
    }

    private ChannelBuffer nextMessage() {
        return ChannelBuffers.wrappedBuffer(content);
    }

返回顶部
顶部