我正在学习nodejs + vuejs + socket.io测试,在服务器端和客户端进行消息发送和接收。
服务器端的正在工作,我正在接收控制台(消息:文本),但是客户端的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)。
发布于 2017-01-19 21:00:03
这主要是一个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在客户机上的登录。
https://stackoverflow.com/questions/41751508
复制相似问题