description

مشکل socketio

- 6 ماه پیش
توسط programer آپدیت شد
programer ( 7 تجربه )
6 ماه پیش

سلام
بخشی از کد سرور:

var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket){
    socket.on('change cell', function(cellObj){
        socket.broadcast.emit('change cell', cellObj);
    });
    socket.on('focus cell', function(focusObj){
        socket.broadcast.emit('focus cell', focusObj);
    });
    socket.on('blur cell', function(blurObj){
        socket.broadcast.emit('blur cell', blurObj);
    });
});

http.listen(۸۰۰۰, function(){
  console.log('listening on *:۸۰۰۰');
});

بخشی از کد کلاینت:
دریافت:

import openSocket from 'socket.io-client';
const socket = openSocket('http://localhost:۸۰۰۰');
    socket.on('change cell', function(cellObj){
      console.log("cellObj")
      Control.changeEvent(cellObj);
    });
    socket.on('focus cell', function(focusObj){
      console.log("focusObj")
      Control.focusEvent(focusObj)      
    });
    socket.on('blur cell', function(blurObj){
      Control.blurEvent(blurObj)      
    });

انتشار:

import openSocket from 'socket.io-client';
const socket = openSocket('http://localhost:۸۰۰۰');
socket.emit('change cell', {row, column , value , changer:ID , readOnly:true});

   socket.emit('focus cell', {row, column , readOnly:true});     

 socket.emit('blur cell', {row, column , readOnly:false});     

ارسال کننده رویداد در سمت کلاینت موقع انتشار توسط خودش هم رویداد رو دریافت میکنه با اینکه از broadcast استفاده شده.
حل این مشکل چی کار کنم؟
و لطفا اگه real-time library خوب دیگه ای که از قابلیت broadcast سوکت دات یو پشتیبانی میکنه معرفی کنید( البته مثل engine.io روی socket.io ساخته نشده باشه).

بهترین پاسخ انتخاب شده توسط programer
programer
6 ماه پیش

حل شد!
مشکل از این بود که دوبار شی سوکت رو ساختم!

programer ( 7 تجربه )
6 ماه پیش

حل شد!
مشکل از این بود که دوبار شی سوکت رو ساختم!

برای ارسال پاسخ باید وارد سایت شوید