2017-01-19 4 views
0

Я изучаю nodejs + vuejs + socket.io Тестирование отправки сообщения и возврата на стороне сервера и на стороне клиента.socket.on не работает на стороне клиента

На стороне сервера работает, я ПОЛУЧАТЬ консоль (сообщение: текст) Но, то console.log на стороне клиента не работает. Ничего не появляется.

index.html:

<script src="/socket.io/socket.io.js"></script> 
<body> 
    <div class="container" id="todo"> 
     <h1><%= title %></h1> 
     <h3>{{subtitle}}</h3> 
     <p>Welcome to <%= title %></p> 
     <div id="app-5"> 
     <p>{{ subtitle }}</p> 
     <button v-on:click="sendMessage">Send Message</button> 
     </div> 
    </div> 
</body> 
<script src="https://unpkg.com/vue/dist/vue.js"></script> 
<script src="/javascripts/app.js"></script> 

app.js:

var socket = io(); 

var vm = new Vue({ 
el: '#todo', 
    data: { 
    subtitle: 'Hello Vue.js!', 
    text: 'Hello Friends', 
    menssages: [] 
}, 
methods: { 
    sendMessage: function() { 
    socket.emit('chat message', this.text); 
    } 
} 
}); 

socket.on('chat message', function(msg){ 
console.log('Client side message: ' + msg) 
}); 

nodejs сервера:

io.on("connection", function(socket) { 
console.log("A user connected"); 

socket.on('chat message', function(msg){ 
    console.log('messagem: ' + msg); 
}); 
}); 

Я ПОЛУЧАТЬ сообщение на сервере терминалов. Но не получить console.log('Client side message: ' + msg) в браузере.

ответ

3

Это главным образом вопрос socket.io. Вы испуская событие от клиента:

socket.emit('chat message', this.text); 

, а затем прослушивание этого события на сервере:

socket.on('chat message', function(msg){ 
    console.log('messagem: ' + msg); 
}); 

, который имеет смысл, и, как вы сами говорите, прекрасно работает: сообщение, логгируется на сервере.

Однако, слушая на chat message события на клиенте:

socket.on('chat message', function(msg){ 
console.log('Client side message: ' + msg) 
}); 

не работает до тех пор, на сервер выбросила это событие.

Другими словами, попробуйте запустить:

socket.emit('chat message', 'Hello World.'); 

на сервере, чтобы увидеть Hello World зашли на клиенте.

+0

Спасибо, сэр. Этот 'socket.emit' внутри внутри' socket.on ('сообщение чата' ... '? –

+0

Если вы этого хотите. –

Смежные вопросы