账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    前端使用VueStomp后端用sockjs-node,官方事例连接失败
    45
    0
    <template>
      <div class="page">
        <button @click="connectSrv">Link</button>
        <button @click="disconnect">UnLink</button>
        <button @click="send">send</button>
        <input type="text" v-model="val">
      </div>
    </template>
    
    <script>
      export default {
        data() {
          return {
            invokeIdCnt: 0,
            val: ''
          }
        },
        methods: {
          getInvokeId() {
            let hex = (this.invokeIdCnt++).toString(16);
            var zero = '0000';
            var tmp = 4 - hex.length;
            return zero.substr(0, tmp) + hex;
          },
          onFailed(frame) {
            console.log('连接失败: ' + JSON.stringify(frame));
          },
          responseCallback(frame) {
            console.log("接收信息:" + frame.body);
          },
          disconnect() {
            this.disconnetWM();
          },
          onConnected(frame) {
            console.log('连接成功: ' + frame);
            this.$stompClient.subscribe('/echo', this.responseCallback, this.onFailed);
          },
          connectSrv() {
            this.connetWM("http://localhost:3001/echo", {}, this.onConnected, this.onFailed);
          },
          send() {
            let destination = '/echo'
            let invokeId = this.getInvokeId();
            let body = this.val
            this.sendWM(destination, body, invokeId, this.responseCallback, 3000);
          },
        },
        stompClient: {
          monitorIntervalTime: 100,
          stompReconnect: false,
          timeout(orgCmd) {}
        }
      };
    
    </script>
    
    var http = require('http');
    var sockjs = require('sockjs');
    
    var echo = sockjs.createServer({sockjs_url: './sockjs.min.js'});
    
    echo.on('connection', function (conn) {
      conn.on('data', function (message) {
        conn.write(message);
        // console.log(message)
      });
      conn.on('close', function () {});
    });
    
    var server = http.createServer();
    echo.installHandlers(server, { prefix: '/echo' });
    server.listen('3001');

    提示为

    Opening Web Socket...
    Web Socket Opened...
    >>> CONNECT
    accept-version:1.2,1.1,1.0
    heart-beat:10000,10000
    
    >>> length 60
    
    <<< CONNECT
    accept-version:1.2,1.1,1.0
    heart-beat:10000,10000
    
    Unhandled frame: CONNECT
    heart-beat:10000,10000
    accept-version:1.2,1.1,1.0

    没有提示连接成功或者失败,应该是一直连接用,使用的官方事例
    搞了一下午实在想不出来,求教下大神

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在使用VueStomp后端用sockjs-node连接失败时,可能有以下几个原因:

      1. 服务器端的问题:可能是服务器端的WebSocket服务没有开启,或者WebSocket服务的端口没有开放。需要检查服务器端的WebSocket服务是否已经开启,并且监听的端口是否正确。

      2. VueStomp的版本问题:VueStomp的版本可能不兼容sockjs-node,导致连接失败。需要检查VueStomp的版本是否与sockjs-node兼容,并且是否正确配置了sockjs-node。

      3. VueStomp的配置问题:可能是VueStomp的配置文件没有正确配置,导致连接失败。需要检查VueStomp的配置文件是否正确配置,并且是否正确配置了WebSocket连接的参数。

      4. VueStomp的版本和sockjs-node版本不兼容:VueStomp的版本可能不兼容sockjs-node,导致连接失败。需要检查VueStomp的版本和sockjs-node版本是否兼容,并且是否正确配置了sockjs-node。

      5. socket.js-node的问题:可能是socket.js-node本身的问题,导致连接失败。需要检查socket.js-node本身是否有错误。

      以上是一些可能的原因和解决办法,具体的解决方案需要根据实际情况进行排查。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部