チャット アプリケーションを作成中ですが、問題が発生しました。メッセージを送信すると、そのメッセージはデータベースに保存され、チャネルを介して送信され、現在ページにいるすべての人が受け取ることができます。私が抱えている問題は、メッセージが保存されて送信されますが、送信者以外には受信されないことです。
これが私のサーバーソケットコードです:
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
チャットを表示している他のユーザーではなく、メッセージを送信した人だけがメッセージを受信する理由について、誰かが私を正しい方向に向けることができるかどうか疑問に思いました.
前もって感謝します。