私はフロントエンドではreact、バックエンドではnode/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