您的位置:首页 > 其它

socket.Io demo

2016-12-22 14:17 197 查看
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包等会发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: