1、配置
[SOCKET]
#是否开启socket
socket_enable=1
#是否启用自定义socket
socket_override=1
#自定义socket的类,必须继承SocketService
socket_class=test.z.socket.MySocket
#socket端口
socket_port=9999
#socket调用包名设置
socket_package=test.z.socket
#for websocket的验证协议
socket_protocol=jkas
2、信息推送:每次不能大于1024字节
send(String message)
send(byte[] message)
send(String to,String messages)//通过socket推送信息到指定用户 to:用户标识,前端登录时指定,多个用逗号隔开,messages:信息内容,注:仅可在定时任务、过滤器、监听器及控制器中使用
send(String to,byte[] messages)
客户端请求发送数据格式:
{"cmd":"close"}//关闭
{"cmd":"login","uid":"zhou886"}//登录
{"app":"test","data":{"name":"sfsd"}}//其它请求,app指自己写的继承于JkasSocket的类,act:该类的方法,没传act默认为index
socket响应类编写:
socket类必须继承于JkasSocket,方法类型不限定,但最终会以字符串输出到客户端
获取前端参数,即data数据方法:
String D()//获取整 个data数据
String D(String key)//获取json结构的data数据指定key的值
案例:
package test.z.socket;
import
org.jkas.core.JkasSocket;
public class Test extends JkasSocket
{ public
String index()
{return D("name");
}
}
服务端输出:
{"code":200,"msg":"connected"}//连接成功
{"code":200,"msg":"login"}//登录成功
{"code":200,"msg":"closed"}//关闭连接成功
{"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"}//各种提示信息
{"code":500,"msg":"invalid json data"}//请求的JSON数据格式错误
如果是自定义类,字符串原样输出
3、自定义Socket
自定义socket的类,必须继承SocketService
并且要同时开启
socket_enable=1
socket_override=1
开启自定义socket后,socket响应类转发将失效
覆盖如下方法进行自定义类的实现,可以不全部覆盖:
public void OnConnection(Socket socket)//连接成功
public void OnMessage(Socket socket,byte[] message)//收到信息
public void OnError(Socket socket,String error)//出现错误
public void OnClose(Socket socket)//连接断开
案例:
package test.z.socket;
import
org.jkas.core.SocketService;
import java.net.Socket;
public class MySocket
extends SocketService
{
public MySocket()
{
}
public void onConnection(Socket
socket)
{send("custom my socket connected");
}
public void onMessage(Socket socket,byte[]
message)
{send("get message:"+new String(message));
}
public void onClose(Socket
socket)
{System.out.println("socket close");
}
}