请问下websocket代替的是ajax,servlet,还是socket,谢谢!!
需求大概是这样的:
1、客户端发送请求给服务端,然后服务端验证请求报文后,回复对应的数据给客户端。
2、客户端收到服务端返回的信息后,显示在前端html页面上。
注:
1、通过TCP通讯服务端和客户端来建立链接。
2、只做客户端,服务端不需要。
3、客户端我分为前端html和后台java代码。
我目前的做法
1、前端HTML通过AJAX 递交请求数据,后台程序servlet接收后,通过SOCKET建立TCP连接,启动线程发送请求数据报文给服务器端
前台ajax-------》servlet(后台)-----socket(tcp,后台)----》服务端
2、服务端验证后返回数据包(服务端不需要做)
3、客户端后台收到服务端返回的数据,递交给前端ajax接收,然后显示在html上。
4、为了保持客户端与服务端的产连接,我每1分钟发送一个心跳包
现在遇到的问题:
1、服务端返回的数据不是一次性的,建立链接后会一直发送数据过来。
2、只有线程结束后,才能把数据返回给前端,所以我采用了AJAX轮询来处理,每2秒发送一个请求,然后后台收到数据后就终止线程返回数据给前端。 导致目前效率很低,还出现堵塞问题。
网上查了资料,说是用websocket试试。请问,如果用websocket,结构是变成这样吗? websocket起到ajax的作用?
前台websocket-------》servlet(后台)-----socket(tcp,后台)----》服务端
谢谢,java不熟,还请高手给指点下!!