socket.Io demo

来源:互联网 发布:程序员的出路 编辑:程序博客网 时间:2024/06/07 01:44

server端

package com.test.server;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;import com.corundumstudio.socketio.listener.DisconnectListener;import org.apache.commons.lang.StringUtils;import org.apache.log4j.Logger;/** * Created by leo_wang on 2016/12/22. * * @describe */public class SecketIoServer {    private static Logger logger = Logger.getLogger(SecketIoServer.class.getName());    // server    private static SocketIOServer server = null;    private void initServer(){        Configuration configuration = new Configuration();        configuration.setHostname("127.0.0.1");//IP地址        configuration.setPort(9090);//端口        configuration.setMaxFramePayloadLength(500 * 1024);//最大传输        configuration.setMaxHttpContentLength(500 * 1024);        server = new SocketIOServer( configuration );        server.start();        server.addConnectListener(new ConnectListener() {            @Override            public void onConnect(SocketIOClient client) {                // TODO Auto-generated method stub            }        });        server.addDisconnectListener(new DisconnectListener() {            @Override            public void onDisconnect(SocketIOClient client) {               //TODO Auto-generated method stub                System.out.println("连接关闭");            }        });//        server.addListeners("test",);        server.addEventListener("demo", String.class, new DataListener<String>() {            @Override            public void onData(SocketIOClient client, String data, AckRequest ackRequest) throws Exception {                String demo = data;                if (StringUtils.isNotBlank(demo)) {                    System.out.println(demo);                    logger.info("连接成功!key=" + demo);                    client.sendEvent("demoOK", data);                }            }        });    }    public static void main(String agrs[]){        SecketIoServer server = new SecketIoServer();        server.initServer();    }}

客户端

package com.test.client;import io.socket.client.IO;import io.socket.client.Socket;import io.socket.emitter.Emitter;import org.apache.log4j.Logger;import org.json.JSONException;import org.json.JSONObject;import java.net.URISyntaxException;import java.text.SimpleDateFormat;import java.util.Date;/** * Created by leo_wang on 2016/12/22. * * @describe */public class SocketIoClient {    private static Logger logger = Logger.getLogger(SocketIoClient.class.getName());    private Socket socket;    private boolean isConnected = false;    public void initSocket() throws URISyntaxException {        socket = IO.socket("http://127.0.0.1:9090");        socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {            @Override            public void call(Object... args) {            }        }).on("event", new Emitter.Listener() {            @Override            public void call(Object... args) {}        }).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {            @Override            public void call(Object... args) {                System.out.println("关闭连接");            }        });        socket.connect();    }    public void sendDemo() throws JSONException {        JSONObject obj = new JSONObject();        obj.put("name", "test");        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时MM分ss秒");        String date = sdf.format(new Date());        obj.put("time", date);        socket.emit("demo", obj.toString());        // Receiving an object        socket.on("demoOK", new Emitter.Listener() {            @Override            public void call(Object... args) {//                System.out.println(args[0]);                JSONObject obj = null;                try {                    obj = new JSONObject(args[0]+"");                } catch (JSONException e) {                    e.printStackTrace();                }                System.out.println(obj);            }        });    }    public void disconnection(){        if (socket.connected()) {            System.out.println("需要关闭连接");            socket.disconnect();        }    }    public static  void main(String agrs[]){        SocketIoClient client = new SocketIoClient();        try {            client.initSocket();            client.sendDemo();            client.disconnection();        } catch (URISyntaxException e) {            e.printStackTrace();        } catch (JSONException e) {            e.printStackTrace();        }    }}

demo包等会发

0 0