متوجه ربط موضوع به Non-blocking یا Blocking نشدم.ضمناً تا اونجایی که یادم هست در روش Non-Blocking دیگه نیاز به ایجاد چیزی مثل Session ID نبود و تنها از یک Index به عنوان مشخص کننده صحت کانکشن جاری استفاده میشد .
درباره Session ID، اون مقدار میتونه هر چیزی باشه، مثلا یک عدد، یا یک Hash Code که بشه از طریق آن، به سرعت در Hash Table مربوطه، کانکشن مرتبط با آن را پیدا کرد.
امنیت و Performance معمولا با هم نسبت عکس دارند. شما با توجه به نیازتون باید گزینه مناسب رو انتخاب کنید. ممکنه توی برنامه شما، فقط نیاز داشته باشید که در زمان Connect شدن کاربر، اطلاعات لاگینش را بررسی کنید، و تا زمانی که Disconnect نشده، چیزی رو چک نکنید. اون دیگه بستگی به کاربرد مورد نظر شما داره.یک سرور با 5 هزار کاربر آنلاین که بین هر کاربر و سرور در هر ثانیه 10 پیغام رد و بدل میشه(اعم از پیغامها ، قطعات فایل و ...) . حالا اگه قرار باشه در هر بار جا به جایی پیغام ، Session ID مربوطه بررسی بشه نهایتاً در هر ثانیه باید 50 هزار Session ID توسط سرور بررسی بشه . و اینکار پردازش سرور رو خیلی بالا میبره .