请问下,text协议的端口,为什么能用http协议访问,我该如何调整。

xiyang

开启了 text协议的端口 5778,5779用于内部通信,但是用http协议也能访问,如图:
截图

截图

该如何调整。

1777 1 0
1个回答

phpcreeper

1、先说下为什么能用http协议访问:
text协议要求是发送来的数据包只要碰到换行符\n、那就认为是一个完整的数据包、再看http协议的请求包过来以后其请求头和请求行都是符合text协议的解析要求、所以看上去好像就是跨协议访问了一样,但是这受限限于不同的客户端解析实现;http协议和text协议是完全不同的协议、而且http协议的请求和响应也有自己严格的封包要求、比如你用浏览器客户端去访问基于text协议的服务发现明显是无法正常解析的。
2、可能措施有:
比如是内网那就将监听地址切换为内网IP、或者是从防火墙层面进行协议过滤、也可以在onMessage里面进行协议scheme解析拦截处理等等
3、最后服务端监听了什么协议、那客户端必须配套用什么协议来访问,这就好比我讲中文你和我讲西班牙语、偶尔彼此能听懂两句、说的多了终究还是都听不懂。

  • xiyang 2021-07-23

    大佬,也可以在onMessage里面进行协议scheme解析拦截处理等等,这句scheme解析拦截如何理解,有相关的参考文档吗?我现在折中的办法就是在onMessage里边判断它请求的数据,如果格式不对就直接onClose了。

  • phpcreeper 2021-07-23

    比如针对http协议、在onmessage里可以根据http协议规则去解析数据包($data)里的scheme、据此拦截处理,但要是其他协议也可能面临这种处理、所以开销还是比较大; 个人建议既然已经定性为内网通信、最好还是监听内网IP开销最小;

  • xiyang 2021-07-23

    @614:好的,感谢

年代过于久远,无法发表回答
×
🔝