nettysoketio主动推送

package com.corundumstudio.socketio.demo;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

import com.corundumstudio.socketio.AckRequest;
import com.corundumstudio.socketio.Configuration;
import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.listener.ConnectListener;
import com.corundumstudio.socketio.listener.DataListener;

public class ChatLauncher {

    private static List<SocketIOClient> clients = new ArrayList<SocketIOClient>();//用于保存所有客户端  

    public static void main(String[] args) throws InterruptedException {

        Configuration config = new Configuration();
        config.setHostname("localhost");
        config.setPort(9092);

        final SocketIOServer server = new SocketIOServer(config);
        server.addEventListener("chatevent", ChatObject.class, new DataListener<ChatObject>() {
            @Override
            public void onData(SocketIOClient client, ChatObject data, AckRequest ackRequest) {
                // broadcast messages to all clients
                server.getBroadcastOperations().sendEvent("chatevent", data);
            }
        });

        server.addConnectListener(new ConnectListener() {

            @Override
            public void onConnect(SocketIOClient client) {
                clients.add(client);
            }
        });

        server.start();

        System.out.println("开始推送了..................");
        Timer timer = new Timer();  
        timer.schedule(new TimerTask() {  
            @Override  
            public void run() {  
                Random random = new Random();  
                for(SocketIOClient client : clients) {  
                    client.sendEvent("pushpoint", new Point(random.nextInt(100), random.nextInt(100),clients.size()));  
                }  
            }  
        }, 1000, 1000);  //每隔一秒推送一次

    }

}
<!DOCTYPE html>  
<html>  
<head>  
    <title>netty-socketio测试</title>  
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <script src="js/socket.io/socket.io.js"></script>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script>  
        $(function(){  
            var socket =  io.connect('http://127.0.0.1:9092');  
            //监听名为pushpoint的事件,这与服务端推送的那个事件名称必须一致  
            socket.on("pushpoint", function(data){  
                $('#x').text(data.x);  
                $('#y').text(data.y);
                $('#c').text(data.clientSize);
            });  
        });  

    </script>  
</head>  

<body>  

    <div id="display" style="height:50px;">
        x=<span id="x">0</span>, y=<span id="y">0</span>  <br>
        客户端数量:<span id="c"></span>
    </div>  

</body>  

</html>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值