use of com.generallycloud.baseio.component.SocketSession in project baseio by generallycloud.
the class TestBalanceBroadcast method main.
public static void main(String[] args) throws Exception {
IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {
@Override
public void accept(SocketSession session, Future future) throws Exception {
ProtobaseFuture f = (ProtobaseFuture) future;
if (BalanceContext.BALANCE_CHANNEL_LOST.equals(f.getFutureName())) {
System.out.println("客户端已下线:" + f.getReadText());
} else {
System.out.println("~~~~~~收到报文:" + future.toString());
String res = "(***" + f.getReadText() + "***)";
System.out.println("~~~~~~处理报文:" + res);
f.write(res);
session.flush(future);
}
}
};
ServerConfiguration configuration = new ServerConfiguration(8800);
SocketChannelContext context = new NioSocketChannelContext(configuration);
SocketChannelConnector connector = new SocketChannelConnector(context);
context.setIoEventHandleAdaptor(eventHandleAdaptor);
context.setProtocolFactory(new ProtobaseProtocolFactory());
context.addSessionEventListener(new LoggerSocketSEListener());
SocketSession session = connector.connect();
for (; session.isOpened(); ) {
ProtobaseFuture future = new ProtobaseFutureImpl(context, "broadcast");
future.setBroadcast(true);
String msg = "broadcast msg___S:" + System.currentTimeMillis();
future.write(msg);
future.writeBinary("__^^^binary^^^__".getBytes());
session.flush(future);
ThreadUtil.sleep(10);
}
CloseUtil.close(connector);
}
use of com.generallycloud.baseio.component.SocketSession in project baseio by generallycloud.
the class TestBalanceClient method main.
public static void main(String[] args) throws Exception {
final AtomicInteger res = new AtomicInteger();
IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {
@Override
public void accept(SocketSession session, Future future) throws Exception {
ProtobaseFuture f = (ProtobaseFuture) future;
if (f.hasReadBinary()) {
System.out.println(f.getReadText() + new String(f.getReadBinary()) + "______R:" + System.currentTimeMillis());
} else {
System.out.println(f.getReadText() + "______R:" + System.currentTimeMillis());
}
res.incrementAndGet();
}
};
ServerConfiguration configuration = new ServerConfiguration(8600);
SocketChannelContext context = new NioSocketChannelContext(configuration);
SocketChannelConnector connector = new SocketChannelConnector(context);
context.setProtocolFactory(new ProtobaseProtocolFactory());
context.setSocketSessionFactory(new BalanceClientSocketSessionFactory());
context.addSessionEventListener(new LoggerSocketSEListener());
context.setIoEventHandleAdaptor(eventHandleAdaptor);
BalanceClientSocketSession session = (BalanceClientSocketSession) connector.connect();
for (int i = 0; i < 100; i++) {
int fid = Math.abs(new Random().nextInt());
ProtobaseFuture future = new ProtobaseFutureImpl(context, "future-name");
future.write("你好!");
future.setHashCode(fid);
session.flush(future);
}
ThreadUtil.sleep(300);
System.out.println("==========" + res.get());
ThreadUtil.sleep(500000000);
CloseUtil.close(connector);
}
use of com.generallycloud.baseio.component.SocketSession in project baseio by generallycloud.
the class TestBalanceLoad method main.
public static void main(String[] args) throws Exception {
IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {
@Override
public void accept(SocketSession session, Future future) throws Exception {
ProtobaseFuture f = (ProtobaseFuture) future;
if (BalanceContext.BALANCE_CHANNEL_LOST.equals(f.getFutureName())) {
System.out.println("客户端已下线:" + f.getReadText());
} else {
System.out.println("收到报文:" + future.toString());
String res = "_____________" + f.getReadText();
System.out.println("处理报文:" + res);
f.write(res);
session.flush(future);
}
}
};
ServerConfiguration configuration = new ServerConfiguration(8800);
SocketChannelContext context = new NioSocketChannelContext(configuration);
SocketChannelConnector connector = new SocketChannelConnector(context);
context.setIoEventHandleAdaptor(eventHandleAdaptor);
context.setProtocolFactory(new ProtobaseProtocolFactory());
context.addSessionEventListener(new LoggerSocketSEListener());
connector.connect();
System.in.read();
CloseUtil.close(connector);
}
use of com.generallycloud.baseio.component.SocketSession in project baseio by generallycloud.
the class TestLoadClient method main.
public static void main(String[] args) throws Exception {
final Logger logger = LoggerFactory.getLogger(TestLoadClient.class);
final CountDownLatch latch = new CountDownLatch(time);
final AtomicInteger res = new AtomicInteger();
final AtomicInteger req = new AtomicInteger();
IoEventHandleAdaptor eventHandleAdaptor = new IoEventHandleAdaptor() {
@Override
public void accept(SocketSession session, Future future) throws Exception {
// latch.countDown();
// long count = latch.getCount();
// if (count % 10 == 0) {
// if (count < 50) {
// logger.info("************************================" + count);
// }
// }
// logger.info("res==========={}",res.getAndIncrement());
}
};
ServerConfiguration configuration = new ServerConfiguration(8300);
// SocketChannelContext context = new NioSocketChannelContext(configuration);
SocketChannelContext context = new AioSocketChannelContext(configuration);
SocketChannelConnector connector = new SocketChannelConnector(context);
context.setIoEventHandleAdaptor(eventHandleAdaptor);
context.setProtocolFactory(new ProtobaseProtocolFactory());
context.addSessionEventListener(new LoggerSocketSEListener());
connector.getContext().setProtocolFactory(new FixedLengthProtocolFactory());
connector.getContext().getServerConfiguration().setSERVER_CORE_SIZE(1);
SocketSession session = connector.connect();
System.out.println("################## Test start ####################");
long old = System.currentTimeMillis();
for (int i = 0; i < time; i++) {
FixedLengthFuture future = new FixedLengthFutureImpl(session.getContext());
future.write("hello server!");
session.flush(future);
}
latch.await();
long spend = (System.currentTimeMillis() - old);
System.out.println("## Execute Time:" + time);
System.out.println("## OP/S:" + new BigDecimal(time * 1000).divide(new BigDecimal(spend), 2, BigDecimal.ROUND_HALF_UP));
System.out.println("## Expend Time:" + spend);
CloseUtil.close(connector);
}
use of com.generallycloud.baseio.component.SocketSession in project baseio by generallycloud.
the class TestLoadClient1 method run.
@Override
public void run() {
int time1 = getTime();
SocketSession session = connector.getSession();
for (int i = 0; i < time1; i++) {
FixedLengthFuture future = new FixedLengthFutureImpl(session.getContext());
future.write("hello server!");
session.flush(future);
}
}
Aggregations