Я скачал socket.io-tester , чтобы проверить мой socket.io, и он отлично работает, моя проблема в том, что когда я создаю приложение activjs, которое было подключено к socket.io с использованием сокета .io-client это не сработало, и я не получаю никаких сообщений от сервера. Когда я нахожусь в разработке, а клиент и сервер находятся на локальном хосте, он работает, но при развертывании не работаетне работаетчто не так в моем коде?
вот мой код реагирования.
import React, { Component } from 'react';
import { Router, Route, Switch } from 'react-router-dom';
import ReactDOM from 'react-dom';
import io from 'socket.io-client';
const socket = io('https://example.com/socket.io');
class App extends Component {
componentDidMount() {
socket.on('chat', (payloadData) => {
console.log(payloadData);
})
}
render() {
return (
<div></div>
);
}
}
export default App;
А это мои настройки на /socket.io/ virtualhost
location ^~ /socket.io/ {
proxy_pass http://localhost:3005;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Мой код на стороне сервера:
import http from 'http';
import express from 'express';
import bodyParser from 'body-parser';
import config from './config';
import routes from './routes';
const socket = require('socket.io');
let app = express();
app.server = http.createServer(app);
// parse application/json
app.use(bodyParser.json({
limit: config.bodyLimit
}));
// config.port == 3005
app.server.listen(config.port, () => {
console.log(`started on port ${app.server.address().port}`);
});
// socket.io setup
const io = socket(app.server);
io.on('connection', (socket) => {
console.log('connection made', socket.id);
socket.on('chat', (data) => {
io.sockets.emit('chat', data);
});
})
PS.Я не включил все свои коды на стороне сервера, потому что это слишком долго, я включаю только те коды, которые были связаны с темой.