1、配置
[UDP]
;是否开启udp
udp_enable=1
;udp会话过期时间(分钟)
udp_interval=10
;是否启用自定义udp
udp_override=1
;自定义udp的类,必须继承UdpService
udp_class=test.z.udp.MyUdp
;udp端口
udp_port=9998
;udp调用包名设置
udp_package=test.z.udp
2、信息推送:每次不能大于1024字节
usend(String message)
usend(byte[] message)
usend(String to,String messages)//通过udp推送信息到指定用户
to:用户标识,客户端登录时指定,多个用逗号隔开,messages:信息内容,注:仅可在定时任务、过滤器、监听器及控制器中使用 usend(String to,byte[] messages)
客户端请求发送数据格式:
{"cmd":"login","uid":"zhou886"}//登录
{"app":"test","data":{"name":"sfsd"}}//其它请求,app指自己写的继承于JkasUdp的类,act:该类的方法,没传act默认为index
UDP响应类编写:
UDP类必须继承于JkasUdp,方法类型不限定,但最终会以字符串输出到客户端
获取前端参数,即data数据方法:
String D()//获取整 个data数据
String D(String key)//获取json结构的data数据指定key的值
案例:
package test.z.udp;
import
org.jkas.core.JkasUdp;
public class Test extends JkasUdp
{ public String
index()
{ usend("abcdefg");
return "udp server";
}
}
服务端输出:
{"code":200,"msg":"login"}//登录成功
{"code":404,"msg":"Bad
Request"}//app或act名称不符要求
{"code":200,"msg":"success"}//收到非Json信息,不做任何处理
{"code":404,"msg":"Please set the package in the configuration file first."}//包名没配置输出
{"code":404,"msg":"notice messages"}//各种提示信息
如果是自定义类,字符串原样输出
3、自定义Udp
自定义udp的类,必须继承UdpService
并且要同时开启
udp_enable=1
udp_override=1
开启自定义udp后,udp响应类转发将失效
覆盖如下方法进行自定义类的实现,可以不全部覆盖:
public void OnMessage(DatagramPacket packet,byte[] message)//收到信息
public void OnError(DatagramPacket packet,String error)//出现错误
案例:
package test.z.udp;
import
org.jkas.core.UdpService;
import java.net.DatagramPacket;
import
java.util.HashMap;
import java.io.IOException;
public class MyUdp extends
UdpService
{ private boolean hasHandshake=false;
public
MyUdp()
{
}
public void OnMessage(DatagramPacket packet,byte[]
message)
{String msg="";
try { msg=new String(message);
}catch(Exception
e)
{msg=e.toString();
}
usend("goods"+msg);
}
}