香酥鸡腿的gravatar头像
香酥鸡腿2018-09-23 15:30:36

java websocket如何实现消息同步返回 类似http请求数据返回结果

问题描述

项目使用springboot,目前使用websocket与安卓客户端完成了基本通信步骤,但是目前有个需求是,向客户端发送消息,等待客户端返回的结果。因为刚接触websocket有很多不懂的地方,麻烦大哥们帮忙看下

运行环境

jdk8+tomcat9+mysql+eclipse+maven

项目技术(必填)

springboot+mybatis+redis

项目截图(必填)

java websocket如何实现消息同步返回 类似http请求数据返回结果

所有回答列表(5)
hhq1991的gravatar头像
hhq1991 LV79月25日

要有消息返回,也需要客户端发送一条消息。有一个onReceive 的方法用来监听接收到的消息。

香酥鸡腿的gravatar头像
香酥鸡腿 LV29月25日

我向客户端发送消息,客户端也一定会向发送消息,如果没发送等待超过几秒就当失败处理了。onReceive 有这个方法么,在哪可以调用这个方法,可不可以发我参考一下。

逍遥幻世的gravatar头像
逍遥幻世9月26日

smiley

wangdabo的gravatar头像
wangdabo10月9日

session.isOpen();  session是否开启....

仙身的羊的gravatar头像
仙身的羊 LV7前天
package com.eapp.demo;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
 * Created by yiye on 2018/9/28.
 */
public class ServerDemo{
    public static void main(String[] args) {
        ServerSocket server=null;
        try{
            server=new ServerSocket(20006);
            Socket socket=server.accept(); //阻塞过程
            //获取客户端发送过来的数据
            BufferedReader buf=new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String info ="server响应数据--推送给客户端:"+buf.readLine();
            System.out.println(info);
            //获取Socket的输出流,用来向客户端发送数据
            PrintWriter out=new PrintWriter(socket.getOutputStream());
            out.println(info);
            out.flush();
        } catch (IOException e) {
        }
    }
}
package com.eapp.demo;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

/**
 * Created by yiye on 2018/9/28.
 */
public class ClientDemo {
    public static void main(String[] args) throws IOException {

        //客户端请求与本机在20006端口建立TCP连接
        Socket socket =new Socket("localhost",20006);
        PrintWriter out=new PrintWriter(socket.getOutputStream());
        //获取键盘输入
        System.out.println("请输入信息:");
        Scanner sc=new Scanner(System.in);
        String str=sc.next();
        out.println(str);
        out.flush();
        //获取Socket的输入流,用来接收从服务端发送过来的数据
        BufferedReader buf=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String info=buf.readLine();
        System.out.println("Server:"+ info);
    }
}

其实有很多例子的,可以多看看

顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友