使用WS的套接字不适用于React Native和Node.js服务器



我正在尝试使用套接字将后端(Node.js Server)连接到Frontend(React Native App)。但是问题是代码永远不会进入io.on('Connection',...)。即无法建立插座连接。

任何帮助将不胜感激。

这是客户端代码:

import React, { Component } from 'react';
import {
    Alert,
    Button,
    Text,
    View
} from 'react-native';    

export default class App extends Component {
    constructor(props) {
        super(props);
        const ws = new WebSocket('ws://localhost:3000');
        console.log("This is client side Web socket.")
        ws.onopen = () => {
            console.log("Its connected")
            ws.send('something'); // send a message
        };
    }
}

这是服务器端代码:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
      console.log('a user connected');
});
http.listen(3000, function(){
      console.log('listening on *:3000');
});

安装NPM模块socket.io-client然后尝试

  import React, {
  Component
} from 'react';
import {
  Alert,
  Button,
  Text,
  View
} from 'react-native';
import SocketIOClient from 'socket.io-client';

export default class App extends Component {
  constructor(props) {
    super(props);
    var ws = SocketIOClient('ws://localhost:3000'); // replace localhost with ip
    ws.on('connect', function() {
      console.log("hello");
    });
  }
}

最新更新