This commit is contained in:
Redkale
2018-02-11 14:14:52 +08:00
parent d78f3565de
commit 419d5bae09
2 changed files with 29 additions and 2 deletions

View File

@@ -12,6 +12,7 @@ import java.nio.charset.*;
import java.util.*;
import org.redkale.convert.json.*;
import org.redkale.net.http.*;
import org.redkale.util.AnyValue;
/**
*
@@ -22,7 +23,8 @@ public interface HttpRequestDesc {
//获取客户端地址IP
public SocketAddress getRemoteAddress();
//获取客户端地址IP, 与getRemoteAddres() 的区别在于:本方法优先取header中指定为RemoteAddress名的值没有则返回getRemoteAddres()的getHostAddress()。
//获取客户端地址IP, 与getRemoteAddres() 的区别在于:
//本方法优先取header中指定为RemoteAddress名的值没有则返回getRemoteAddres()的getHostAddress()。
//本方法适用于服务前端有如nginx的代理服务器进行中转通过getRemoteAddres()是获取不到客户端的真实IP。
public String getRemoteAddr();
@@ -47,6 +49,10 @@ public interface HttpRequestDesc {
//获取文件上传信息列表 等价于 getMultiContext().parts();
public Iterable<MultiPart> multiParts() throws IOException;
//设置当前用户信息, 通常在HttpServlet.preExecute方法里设置currentUser
//数据类型由@HttpUserType指定
public <T> HttpRequest setCurrentUser(T user);
//获取当前用户信息 数据类型由@HttpUserType指定
public <T> T currentUser();
@@ -191,6 +197,12 @@ public interface HttpRequestDesc {
// 获取time参数: double point = request.getRequstURIPath("point:", 0.0);
public double getRequstURIPath(String prefix, double defvalue);
//获取所有的header名
public AnyValue getHeaders();
//将请求Header转换成Map
public Map<String, String> getHeadersToMap(Map<String, String> map);
//获取所有的header名
public String[] getHeaderNames();
@@ -239,6 +251,21 @@ public interface HttpRequestDesc {
//获取指定的header的double值, 没有返回默认double值
public double getDoubleHeader(String name, double defaultValue);
//获取请求参数总对象
public AnyValue getParameters();
//将请求参数转换成Map
public Map<String, String> getParametersToMap(Map<String, String> map);
//将请求参数转换成String, 字符串格式为: bean1={}&amp;id=13&amp;name=xxx
//不会返回null没有参数返回空字符串
public String getParametersToString();
//将请求参数转换成String, 字符串格式为: prefix + bean1={}&amp;id=13&amp;name=xxx
//拼接前缀, 如果无参数,返回的字符串不会含有拼接前缀
//不会返回null没有参数返回空字符串
public String getParametersToString(String prefix);
//获取所有参数名
public String[] getParameterNames();

View File

@@ -85,7 +85,7 @@ public interface WebSocketDesc<G, T> {
public CompletableFuture<Integer> broadcastMessage(final WebSocketRange wsrange, final Object message, boolean last);
//给符合条件的人群广播消息, 返回结果0表示成功非0表示错误码
public CompletableFuture<Integer> broadcastMessage(final WebSocketRange wsrange, final Convert convert, final Object message, boolean last);
public CompletableFuture<Integer> broadcastMessage(WebSocketRange wsrange, Convert convert, final Object message, boolean last);
//获取用户在线的SNCP节点地址列表不是分布式则返回元素数量为1且元素值为null的列表
public CompletableFuture<Collection<InetSocketAddress>> getRpcNodeAddresses(final Serializable userid);