El problema de java websocket transfiriendo la lista a json al subprograma WeChat

Inserte la descripción de la imagen aquí
Primero, observe el problema. Este es el json devuelto por el backend pero data.id no está disponible. El
backend usa gson.toString para convertir la lista a json

En este momento, el valor de retorno del subprogramavar objData = JSON.parse(res.data);

json.parse() 方法将数据转换为 JavaScript 对象( 将字符串转成json对象。 )

A continuación se muestra el código js del programa pequeño


  onLoad: function (options) {
    console.log(app.globalData.openid);
  },
  m:function(){
    //建立连接
    var that=this;
    wx.connectSocket({
      url: "ws://127.0.0.1:9090/xcxmvc/so",
    })

    //连接成功
    wx.onSocketOpen(function () {
      console.log("c" + app.globalData.openid);
      wx.sendSocketMessage({
        data: app.globalData.openid,
      })
    })
    wx.onSocketMessage(function (res) {
      var objData = JSON.parse(res.data);
      console.log(res);
      that.setData({ nr: objData});
    })


    //连接失败
    wx.onSocketError(function () {
      console.log('websocket连接失败!');
    })
  
  },

A continuación se muestra el código detrás

package so;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;

import com.google.gson.Gson;

import net.sf.json.groovy.GJson;
import bean.dao;
import bean.nrbean;

@ServerEndpoint("/so")
public class soc {


@OnOpen
public void open(Session c){
	System.out.print("ok"+c.getId()+"...");
	//c=sc;
	
}
@OnMessage
public void onmessage(final String data,final Session s){
	System.out.println(data+s.getId());
	 
	final String shou="shoudao";
	
	TimerTask task = new TimerTask() { //创建一个新的timer task 
		public void run() { //定时器任务执行的操作
			Gson gson = new Gson();
			 dao dd= new dao();
			 HashMap<String,List> aa=new HashMap<String,List>();
			 
			// List aa=null;
			// nrbean n=new nrbean();
			// List chakan=new ArrayList();
			 List<nrbean> li=new ArrayList<nrbean>();// po=null;
		        li=dd.chakan(data);
		       
		       // List nr=null;
		     //nr=dd.getAlljiezhexie(o);
		     //aa.put("hfnr",dd.getAllhf(o));
		        
		     //   me m=	g.fromJson(mingzi,me.class);//(mingzi);
		     aa.put("nr",li);
		     String jsonObject = gson.toJson(li);
		        System.out.print("~~~~~~~~~~~~~~~~~"+jsonObject);
			try {
				s.getBasicRemote().sendText(jsonObject);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.print("fa song cuo le");
			}
			System.out.println("现在是:" +data);
			
		}};
	
	
	Timer timer = new Timer();//创建一个定时器
	long delay = 0;
	long PeriodTime = 1 * 1000;
	timer.scheduleAtFixedRate(task, delay, PeriodTime);
	//重复执行特定任务,第一个参数为要执行的任务,第二个为执行任务之前延迟的时间,第三个为时间间隔
	//单位都是毫秒
	
		
		
}


}

enchufe

package websocket;
import java.util.Set;

import javax.websocket.Endpoint;
import javax.websocket.server.ServerApplicationConfig;
import javax.websocket.server.ServerEndpointConfig;
public class socket implements ServerApplicationConfig{

	@Override
	public Set<Class<?>> getAnnotatedEndpointClasses(Set<Class<?>> scan) {
		// TODO Auto-generated method stub
		System.out.println("config........."+scan.size());
		return scan;
	}

	@Override
	public Set<ServerEndpointConfig> getEndpointConfigs(
			Set<Class<? extends Endpoint>> arg0) {
		// TODO Auto-generated method stub
		return null;
	}

}

Supongo que te gusta

Origin blog.csdn.net/weixin_40938312/article/details/104702790
Recomendado
Clasificación