Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Socket.io消息已发送,但收件人未收到_Javascript_Node.js_Sockets_Backbone.js - Fatal编程技术网

Javascript Socket.io消息已发送,但收件人未收到

Javascript Socket.io消息已发送,但收件人未收到,javascript,node.js,sockets,backbone.js,Javascript,Node.js,Sockets,Backbone.js,我正在制作聊天应用程序,但遇到了一个问题。我提交一条消息,它被保存到我的数据库中,然后通过通道发送给当前页面上的每个人。我遇到的问题是,消息被保存并发送,但除了发送消息的人之外,其他人都没有收到 以下是我的服务器socketio代码: var server = http.createServer( app ).listen( app.get( 'port' ) ), io = require( 'socket.io' ).listen( server ); //This is wher

我正在制作聊天应用程序,但遇到了一个问题。我提交一条消息,它被保存到我的数据库中,然后通过通道发送给当前页面上的每个人。我遇到的问题是,消息被保存并发送,但除了发送消息的人之外,其他人都没有收到

以下是我的服务器socketio代码:

var server = http.createServer( app ).listen( app.get( 'port' ) ),
    io = require( 'socket.io' ).listen( server );

//This is where we will listen and emit messages
io.sockets.on( 'connection', function( socket ) {
    console.log( 'Socket IO connected' );

    socket.on( 'send', function( data ) {

        console.log( data );

        var chat_model = require( './models/chat_model' );
        chat_model.add( data, send_through_channel );

        function send_through_channel( data ) {
            console.log( data );
            socket.emit( 'chat', data[0] );
        }
    });
});
这是我的客户端socket.io代码:

define( [ 'Backbone', '/socket.io/socket.io.js' ], function() {

    return Backbone.View.extend({

        socket: io.connect( 'http://192.168.0.38:3000' ),

        initialize: function() {

            //Fade out the success message
            $( '.js-success-float' ).fadeOut( 2000 );

            //Listen for new messages
            this.socket.on( 'chat', _.bind( function( data ) {
                console.log( data );
                this.append_message( data );
            }, this ) );
        }
    //More unrelated stuff below
我只是想知道是否有人能给我指出一个正确的方向,为什么信息只被发送信息的人接收,而不是其他观看聊天的用户


提前感谢。

您应该向所有人广播该消息,而不是向特定接收者发送消息: 所以不是这个

socket.emit( 'chat', data[0] );
但这是:

io.sockets.emit( 'chat', data[0] );

您不应向特定接收者发送消息,而应向所有人广播该消息: 所以不是这个

socket.emit( 'chat', data[0] );
但这是:

io.sockets.emit( 'chat', data[0] );

您不应向特定接收者发送消息,而应向所有人广播该消息: 所以不是这个

socket.emit( 'chat', data[0] );
但这是:

io.sockets.emit( 'chat', data[0] );

您不应向特定接收者发送消息,而应向所有人广播该消息: 所以不是这个

socket.emit( 'chat', data[0] );
但这是:

io.sockets.emit( 'chat', data[0] );
问题在于:

发出('chat',数据[0])

您正在向从中接收数据的套接字发送数据。在您的情况下,您应该使用:

io.emit('chat',data[0])

io.sockets.emit('chat',data[0])

发送给所有人,或:

socket.broadcast.emit('chat',data[0])

将其发送给发件人以外的所有人。

问题在于:

发出('chat',数据[0])

您正在向从中接收数据的套接字发送数据。在您的情况下,您应该使用:

io.emit('chat',data[0])

io.sockets.emit('chat',data[0])

发送给所有人,或:

socket.broadcast.emit('chat',data[0])

将其发送给发件人以外的所有人。

问题在于:

发出('chat',数据[0])

您正在向从中接收数据的套接字发送数据。在您的情况下,您应该使用:

io.emit('chat',data[0])

io.sockets.emit('chat',data[0])

发送给所有人,或:

socket.broadcast.emit('chat',data[0])

将其发送给发件人以外的所有人。

问题在于:

发出('chat',数据[0])

您正在向从中接收数据的套接字发送数据。在您的情况下,您应该使用:

io.emit('chat',data[0])

io.sockets.emit('chat',data[0])

发送给所有人,或:

socket.broadcast.emit('chat',data[0])


将其发送给除发件人以外的所有人。

哇,这是一个简单的解决方案。非常感谢。哇,这是一个简单的修复。非常感谢。哇,这是一个简单的修复。非常感谢。哇,这是一个简单的修复。非常感谢你。