socket.io не излучает - PullRequest
       9

socket.io не излучает

0 голосов
/ 02 ноября 2018

Итак, у меня есть это приложение под названием server и , другое , одно из которых называется client , сервер предоставляет все данные, которые клиент может использовать. Дело в том, что когда я пытаюсь излучать с сервера (порт 8080) и получать клиенту (порт 80) ничего не происходит

сервер: app.js

var app = require ("./config/server.js");

var http = require('http').createServer(app);
var io = require("socket.io")(http);

http.listen(8080, function(){
    console.log('Server side instagram_clone_v01 online');
});

io.sockets.on('connect', function (socket) {
    console.log("conectou socket.id="+socket.id);
});

Когда в базу данных сервера вставляется новая фотография, это называется:

io.emit("newPhoto");

клиент: app.js

var app = require('./config/server');

app.listen(80, function(){
    console.log('Server client instagram_clone_v01 online');
});

var io = require('socket.io');

Это вызывается внутри кода ejs :

const socket = io.connect('http://localhost:8080', {transports: ['websocket', 'polling', 'flashsocket']});
socket.on('newPhoto',function(){
     load_posts();
});

Отредактировано с ответом Федерико

Я добавил io.origins('*:*'); на сервер, но emit не излучает

1 Ответ

0 голосов
/ 02 ноября 2018

Я не знаю, почему вы используете io.sockets.on, я не смог найти его в документации. Я пытался очистить код, попробуйте.

server.js

var app    = require ("./config/server.js");    
var http   = require('http').Server(app);
var io     = require("socket.io")(http);

http.listen(8080, function(){
    console.log('Server side instagram_clone_v01 online');
});

io.on('connect', socket => {

    console.log("user" + socket.request.user.id + "connected");

    socket.on('disconnect', function() {

        console.log('A user has disconnected');

    }

    io.emit("newPhoto");
});

client.js

    //io() works only when connecting to a socket hosted on the same url/server
    // For connecting to an external socket hosted elsewhere, you would use io.connect('URL');
    var socket = io();    
    socket.on('newPhoto',function(){
             load_posts();
        });

На странице, где ваш пользователь перенаправляется после входа в систему, вы должны включить следующие сценарии:

<script src="/socket.io/socket.io.js"></script>
<script src="/client.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...