【发布时间】:2016-07-28 04:10:15
【问题描述】:
我在前端使用 react,在后端使用 node/express。我正在尝试集成套接字以使在一个客户端上完成的任何单击事件都在所有其他客户端上发出。 (例如,如果有人点击“播放歌曲”,它将触发所有其他用户播放歌曲的点击事件)。
当我点击某个东西时,它不会到达服务器的套接字侦听器并在浏览器的控制台中显示超出最大调用堆栈大小。
PS:这是我第一次导入代码,它不会让我缩进它!
服务器端代码:
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
var io = require('socket.io')(server);
server.listen(8000);
io.on('connection', function (socket) {
console.log('socket connected!');
socket.on('myClick', function (data) {
console.log('event hit Server');
socket.broadcast.emit('myClick', data);
});
socket.on('disconnect', function () {
io.emit('user disconnected');
});
});
客户端代码:
$(document).ready(function () {
var socket = io('http://localhost:8000');
$(document).on('click', function(event){
console.log('Something has been clicked!');
console.dir(event.target);
socket.emit('myClick', {id: event.target});
});
socket.on('myClick', function (data) {
console.log('event hit other client');
$(data.id).trigger('click');
});
});
【问题讨论】:
-
使用空格缩进。
-
没有
console.dir调用的同样错误?
标签: javascript node.js reactjs socket.io