簡體   English   中英

無法在 Node.JS 和 React-Native (Socket.IO) 之間建立連接

[英]Unable to establish connection between Node.JS and React-Native (Socket.IO)

我是ReactNode的新手,我正在嘗試使用Socket.IO制作一個簡單的WebSocket ,它會簡單地向所有連接的用戶發送問候,用戶將響應服務器。

Node.JS服務器在 Windows PC 上運行,而 React-Native 應用程序在 iOS 和 ZE84E30B9390CDB46ABZDB6DB8 設備上運行。

Node.JS服務器代碼如下

var app = require('express')();
var http = require('http').createServer(app);
var io   = require('socket.io')(http);
const bodyParser = require('body-parser');
const mysql = require('mysql');


const connection = mysql.createPool({
  host     : 'localhost',
  user     : 'root',
  password : 'block',
  database : 'visualpos'
});

// Creating a GET route that returns data from the 'users' table.
app.get('/prenotazioni', function (req, res) {
    // Connecting to the database.
    connection.getConnection(function (err, connection) {

    // Executing the MySQL query (select all data from the 'users' table).
    connection.query("SELECT Data, Importo_Doc FROM tabella_pagamenti", function (error, results, fields) {
      // If some error occurs, we throw an error.
      if (error) throw error;

      // Getting the 'response' from the database and sending it to our route. This is were the data is.
      res.send(results)
    });
    connection.release();
  });
});

app.get('/', function(req, res){
  res.send('<h1>Hello World</h1>');
});

// Starting our server.
http.listen(3000, () => {
 console.log('In ascolto sulla porta *:3000');
});

io.emit('saluta', 'Ciao dal server :)');
io.on('connected', (data) => {
   console.log(data);
});

實際上 GET 部分代碼運行良好,但 Socket.IO 似乎已經死亡 客戶端沒有得到任何響應和服務器相同我認為 Socket.IO 服務器根本沒有啟動..

在 XCode 調試中,當應用程序在 iPhone 上運行時出現以下錯誤

在此處輸入圖像描述

我什至在兩台設備上都發出警告“無法識別 WebSocket 連接選項‘代理’,‘perMessageDeflate’,...”

這是我在 React-Native 中使用的代碼

import io from 'socket.io-client'

    var socket = io('http://192.168.100.50:3000', {
        jsonp: false,
        transports: ['websocket'],
        autoConnect: true,
        reconnection: true,
        reconnectionDelay: 500,
        reconnectionAttempts: Infinity
    });

    componentDidMount(){
     socket.emit('connected','we');
     socket.on('saluta',(data) => { alert(data); });
    }

在 socket.io getStarted 部分,他們使用“連接”事件而不是“連接”( https://socket.io/get-started/chat/ )。

 io.on('connection', function(socket){ console.log('a user connected'); socket.on('disconnect', function(){ console.log('user disconnected'); }); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM