相关文章推荐
果断的乌冬面  ·  伊斯兰教教职人员行为守则·  3 月前    · 
稳重的保温杯  ·  ngx.var与ngx.ctx的区别-爱开源·  3 月前    · 
狂野的伤疤  ·  旅游、金融等领域多项务实政策出台 ...·  5 月前    · 
千年单身的警车  ·  12345政务便民服务热线_通知公告_北塔区 ...·  11 月前    · 
失落的金鱼  ·  3名日本“最后的皇军”,在南太平洋岛屿上,各 ...·  11 月前    · 
Code  ›  websocket 接收不到数据 | 微信开放社区
移动互联网 websocket
https://developers.weixin.qq.com/community/develop/doc/00008c435d86c06e1da6fe5525b800
伤情的充电器
2 年前

交流专区
服务市场
微信学堂
文档
小程序
  • 常用主页

    小程序

    小游戏

    企业微信

    微信支付

  • 服务市场
    微信学堂
    文档
登录
公告列表
公告列表
收藏
分享

扫描小程序码分享

回答

置顶 websocket 接收不到数据 精选 热门

小萨 2018-04-18 7248 浏览 问题模块: Bug反馈
框架类型 API/组件名称 基础库版本 websocket 6.6.6 1.9.98


微信发送给服务端是数据能正常接收到,但是服务端发送给微信端的接收不到,服务端和网页的websocket交互正常,但是和微信这就不行了

微信代码如下

var urls = require( '../constant.js' ).urls;
var Stomp = require( '../lib/stomp.js' ).Stomp;
function request(url, data, success) {
wx.getStorage({
key: 'net_sessionid' ,
success: function (sessionIdRes) {
console.log( 'sessionID:' + sessionIdRes.data);
wx.request({
url: url,
data: data,
method: 'POST' ,
dataType: 'json' ,
header: {
'content-type' : 'application/x-www-form-urlencoded' , // 默认值
'Cookie' : 'JSESSIONID=' + sessionIdRes.data
},
success: function (res) {
success(res);
}
})
}
})
}
function sendSocketMessage(msg) {
console.log( 'send msg:' )
console.log(msg);
wx.sendSocketMessage({
data: msg,
success: function (res) {
console.log( '消息发送成功' );
wx.setStorage({
key: "msg_" ,
data: msg
})
}
})
}
function onSocketOpen() {
}
var ws = {
send: sendSocketMessage,
onopen: null ,
onmessage: null
}
var stompClient = Stomp.over(ws);
function testSocet() {
wx.connectSocket({
url: 'wss://192.168.1.85:8443/websocket' ,
//url: 'ws://127.0.0.1:8080/websocket/websocket',
});
wx.onSocketMessage( function (res) {
console.log( '收到服务器内容:' );
console.log( '收到服务器内容:' + res.data)
});
wx.onSocketClose( function (res) {
console.log( 'WebSocket 已关闭!' )
})
wx.onSocketOpen( function (res) {
console.log( 'WebSocket连接已打开!' )
stompClient.send( "/app/req" , {}, "ssss" );
})
Stomp.setInterval = function (interval, f) {
return setInterval(f, interval);
};
Stomp.clearInterval = function (id) {
return clearInterval(id);
};
wx.onSocketError( function (res) {
console.log( 'WebSocket连接打开失败,请检查!' )
})
}
// stompClient.connect({}
// // ,
//   // function connectCallback(frame) {
//   //   console.log('已连接');
//   //   stompClient.subscribe('/topic/resp', function (response) {
//   //     console.log("返回内容:" + response.body);
//   //   });
//   // },
//   // function errorCallBack(error) {
//   //   console.log('连接失败【' + error + '】');
//   // }
// );
function init() {
//getSession();
testSocet();
}
function getSession() {
wx.request({
url: urls.getSession,
method: 'POST' ,
dataType: 'json' ,
header: {
'content-type' : 'application/x-www-form-urlencoded' , // 默认值
},
success: function (res) {
wx.setStorage({
key: "net_sessionid" ,
data: res.data.data
})
}
})
}
module.exports = {
request: request,
init: init
}

结果


服务端代码


package com.hykj.zonechat.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.messaging.simp.annotation.SendToUser;
import org.springframework.stereotype.Controller;
@Controller
public class SocketController {
private final Logger log = LoggerFactory.getLogger( this .getClass());
@Autowired
private SimpMessagingTemplate simpMessagingTemplate;
@MessageMapping ( "/req" )
public void sendPublicMessage(String msg) {
log.info( "收到消息:" +msg);
simpMessagingTemplate.convertAndSend( "/topic/resp" , "qwerty" );
}
}


package com.hykj.zonechat.sys;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.*;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint( "/websocket" ).setAllowedOrigins( "*" );
}
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker( "/topic/" );
config.setApplicationDestinationPrefixes( "/app" );
}
@Override
public void configureWebSocketTransport(WebSocketTransportRegistration registration) {
registration.setMessageSizeLimit( 128 * 1024 );
}
}

结果


网页代码

< html lang = "zh-CN" xmlns:th = "http://www.thymeleaf.org" >
< head >
< meta charset = "UTF-8" >
< script src = "https://cdn.bootcss.com/stomp.js/2.3.3/stomp.min.js" > script >
< script src = "https://cdn.bootcss.com/sockjs-client/1.1.4/sockjs.js" > script >
< title >socketTest title >
head >
< body >
< button onclick = "send('aaaaaaaaaa')" >Send button >
< table id = 'state-info' > table >
body >
< script type = "text/javascript" >
var socket = new WebSocket("wss://127.0.0.1:8443/websocket");
var stompClient = Stomp.over(socket);
stompClient.connect({},
function connectCallback(frame) {
// 连接成功时(服务器响应 CONNECTED 帧)的回调方法
document.getElementById("state-info").innerHTML = "连接成功";
console.log('已连接【' + frame + '】');
stompClient.subscribe('/topic/resp', function (response) {
alert(response.body)
});
},
function errorCallBack(error) {
// 连接失败时(服务器响应 ERROR 帧)的回调方法
document.getElementById("state-info").innerHTML = "连接失败";
console.log('连接失败【' + error + '】');
}
);
function send(txt) {
stompClient.send("/app/req", {}, txt);
}
script >
html >

结果



这个问题,弄了好久都没搞定,后台用的是springboot 2.0.1.RELEASE 版本  是希望借助websocket 和 stomp协议进行交互,但是在微信和服务端进行websocket交互时出现问题了,就是微信发给后台的数据,后台能够接收到,但是后台发送给微信小程序的数据,微信端却接收不到,期间用网页进行测试,发现网页能够接收到数据,然后又用最基础的servlet建立一个简单的websocket进行测试,发现微信端还是收不到数据,

希望各位前辈能给予解惑,谢谢,联系方式qq 1324618209



最后一次编辑于 2018-04-18
回答 关注问题 邀请回答
收藏

扫描小程序码分享

复制链接
关闭

请选择投诉理由

  • 广告内容
  • 违法违规
  • 恶意灌水内容
  • 其他

删除当前帖子

删除后帖子内容及评论将一并被删除,且不可恢复。

删除 取消
关闭

确定删除?

删除后不可恢复

取消 确定
关闭

关注“微信开放社区”公众号

关注后,可在微信内接收相应的重要提醒。

请使用微信扫描二维码关注 “微信开放社区” 公众号

关闭

反馈

 
推荐文章
果断的乌冬面  ·  伊斯兰教教职人员行为守则
3 月前
稳重的保温杯  ·  ngx.var与ngx.ctx的区别-爱开源
3 月前
狂野的伤疤  ·  旅游、金融等领域多项务实政策出台 我国服务业开放向纵深推进-杭州旅游-杭州网
5 月前
千年单身的警车  ·  12345政务便民服务热线_通知公告_北塔区人民政府
11 月前
失落的金鱼  ·  3名日本“最后的皇军”,在南太平洋岛屿上,各自呆了接近30年!_横井庄
11 月前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号