苍穹外卖 WebSocket 通信

苍穹外卖 WebSocket 通信

介绍

demo

@Component  
@ServerEndpoint("/ws/{sid}")  
public class WebSocketServer {  

    //存放会话对象  
    private static Map<String, Session> sessionMap = new HashMap();  

    /**  
     * 连接建立成功调用的方法  
     */  
    @OnOpen  
    public void onOpen(Session session, @PathParam("sid") String sid) {  
        System.out.println("客户端:" + sid + "建立连接");  
        sessionMap.put(sid, session);  
    }  

    /**  
     * 收到客户端消息后调用的方法  
     *  
     * @param message 客户端发送过来的消息  
     */  
    @OnMessage  
    public void onMessage(String message, @PathParam("sid") String sid) {  
        System.out.println("收到来自客户端:" + sid + "的信息:" + message);  
    }
/**  
 * WebSocket配置类,用于注册WebSocket的Bean  
 */@Configuration  
public class WebSocketConfiguration {  

    @Bean  
    public ServerEndpointExporter serverEndpointExporter() {  
        return new ServerEndpointExporter();  
    }  

}

项目-来单提醒



public void paySuccess(String outTradeNo) {
//通过webSocket推送消息  
Map<String,Object> map =  new HashMap<>();  
map.put("type",1);  
map.put("orderId",ordersDB.getId());  
map.put("content","订单号:"+outTradeNo);  

String jsonString = JSONObject.toJSONString(map);  
webSocketServer.sendToAllClient(jsonString);
  • 下单且支付成功后弹出消息