导航:首页 > IDC知识 > mina游戏服务器

mina游戏服务器

发布时间:2020-10-13 09:30:59

1、Mina服务器怎么搭建集群

确定下你的集群提供哪个协议服务,比如TCP服务。(当然也可以多协议混搭,我的就是HTTP提供主服务,TCP提供命令管理)。然后选择一个消息格式用于RPC通信(JSON,XML,ProtocolBuffer等)这个很关键,(encode,decode)直接影响你集群的处理速度。当这些都确定后,你可以用mina写一个Slave复制多份,那么这就是一个Slave群了。我用的是小鸟云服务器,这些都是他们告诉我的。希望对你有帮助!

2、Mina服务器怎么搭建集群

确定下你的集群提供哪个协议服务,比如TCP服务。(当然也可以多协议混搭,我的就是HTTP提供主服务,TCP提供命令管理)。然后选择一个消息格式用于RPC通信(JSON,XML,ProtocolBuffer等),这个很关键,(encode,decode)直接影响你集群的处理速度。当这些都确定后,你可以用mina写一个Slave,比如就是很简单的HelloWorld,消息格式为JSON。测试ok后将这个Slave复制多份,那么这就是一个Slave群了。

3、android 作为服务器端 可以用mina么

android作为服务器端,就是可以使用mina:
public class TcpServer {

public static void main(String[] args) {
NioSocketAcceptor acceptor = new NioSocketAcceptor();

try {

acceptor.setHandler(new IoHandler() {

@Override
public void sessionOpened(IoSession session) throws Exception {
// TODO Auto-generated method stub

// iosession 客户端的session

System.out.println("open");
}

@Override
public void sessionIdle(IoSession arg0, IdleStatus arg1)
throws Exception {
// TODO Auto-generated method stub

}

@Override
public void sessionCreated(IoSession arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println("create");

}

@Override
public void sessionClosed(IoSession arg0) throws Exception {
// TODO Auto-generated method stub

System.out.println("close");

}

@Override
public void messageSent(IoSession arg0, Object arg1)
throws Exception {
// TODO Auto-generated method stub

}

@Override
public void messageReceived(IoSession session, Object content)
throws Exception {
// TODO Auto-generated method stub

System.out.println("object : " + content);
}

@Override
public void exceptionCaught(IoSession arg0, Throwable arg1)
throws Exception {
// TODO Auto-generated method stub

}
});

DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
chain.addLast("logger", new LoggingFilter());
chain.addLast("codec", new ProtocolCodecFilter(
new TextLineCodecFactory(Charset.forName("utf-8"))));

acceptor.bind(new InetSocketAddress(10003));
} catch (IOException e) {
e.printStackTrace();
}

}
}

4、mina 服务器端主动发数据

方法太多了,给你提供一种吧。在handle里面重写sessionOpened方法,这个方法表示在客户端连接到服务端后,服务端该做的事。在这个方法里写个发送数据的线程。(一定要线程,不要写循环)。有疑问在M我。

5、mina socket 模拟多个client发送多条消息到服务器怎么做

建立 ClientHandler 类

public class ClientHandler extends IoHandlerAdapter {
@Override
public void exceptionCaught(IoSession session, Throwable cause)
throws Exception {
cause.printStackTrace();
}
@Override
public void messageReceived(IoSession iosession, Object message)
throws Exception {
String str=message.toString();
if(str.trim().equals("quit")){
iosession.close(true);
return;
}
Date date=new Date();
iosession.write(date.toString());
System.out.println("message written...");
}
@Override
public void sessionIdle(IoSession iosession,IdleStatus status){
System.out.println("IDLE "+iosession.getIdleCount(status));
}
@Override
public void messageSent(IoSession iosession, Object message) throws Exception {
System.out.println("send messages");
}
}

在 Client 实现的类里

try {
address = new InetSocketAddress("IP地址", 端口);
connector.getFilterChain().addLast("mdc", new MdcInjectionFilter());
connector.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new TextLineCodecFactory()));
connector.getFilterChain().addLast("logger", new LoggingFilter());
connector.setHandler(handler);
future1 = connector.connect(address);
future1.awaitUninterruptibly();
if (!future1.isConnected()) {
System.out.println("not connect");
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}

然后new 几个 client类 就行

6、java mina 怎么打成jar包放在服务器上呀~~

打开记事本输入
Manifest-Version: 1.0
Main-Class: xxx
其中 xxx 是你 public static void main 所在的class
然后另存为 1.mf

接着在你class所在的文件夹下 进行打包

jar -cvmf 1.mf 输出名.jar *.class

这样当前文件夹下的所有class都被打包了起来

你双击那个.jar包 就可以运行了

如果使用了package 别忘了加前缀

7、请问MINA服务器怎么和Tomcat进行通信?

问题补充:谢谢etank的回答。具体情况是这样的:一个webgame,逻辑服务器用的Tomcat,聊天内服务器是用Mina实现的另容外一个单独的Application,现在的需求时聊天服务器想从Tomcat web服务器那里获得玩家的一些数据,比如队友啥的。这样就要聊天服务器能够和web服务器进行通讯。你说的向web服务器发送http请求是可行的,但是就是不知道性能如何?
我想到的另外一种方法是在Tomcat里开一个socket线程和聊天服务器一直保持联系,如果玩家队友发生变化,web服务器就将新的队友信息通过socket发送给聊天服务器,感觉这样性能会更好些,呵呵。

8、mina服务器 messageReceived接收数据不全

mina粘包丢包问题,自定义编码解码规则啊,大致思路就是 在发送数据包的开头用4位(自己定义)表示报文的长度,在解码的时候,先获取前四位,查看报文有多大,如果这次接收的报文没有达到该长度,则等待下一次接收。 几年前用mina的时候遇到过这种问题,希望能帮到你

9、mina框架必须客户端跟服务器端配套使用吗?

当然可以啦,mina只不过是对java nio作了一层封装,更便于开发者使用;但一般服务器才会采用,客户端使用的话就跟拿着大炮打蚊子一样了,没必要

与mina游戏服务器相关的知识