我在後端使用反應前端和節點/ express。我正在嘗試集成套接字,以便在所有其他客戶端上發出在一個客戶端上完成的任何點擊事件。 (例如,如果有人點擊「播放歌曲」,則會觸發所有其他用戶播放歌曲的點擊事件)。Socket.io和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');
});
});
使用空格:有更具體的東西,比如ID或類具有火災事件的元素的替代
線縮進。 – Will
沒有'console.dir'調用的錯誤? – Will