my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Libro WP7
|
Libro HTML5
|
Corso on-site HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Lab
Media
Tutorials
Corsi
Libri
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
[VB.NET] Velocità e stabilita socket server
in
.NET Framework
>
.NET Framework
Ultimo messaggio
ancio
il 12 gennaio 2009 alle 14:23
393 messaggi
dal 08 maggio 2003
www.rsv-service.com
Salve a tutti,
sto realizzando un server socket in vb.net per una poker room.
Il socket principale gestisce la lobby dove gli utenti si iscrivono ai tavoli, e la chat.
Poi man mano che le condizioni sono quelle corrette vanno partendo i vari tavoli da gioco.
Ora il mio dilemma è questo... cosa conviene fare per rendere il programma stabile e veloce: creare un socket diverso per ogni tavolo che si apre ( cambiando porta ) oppure creare un solo socket che gestisca tutti i tavoli ( oppure che gestisce un tot di tavoli, e solo appena si raggiunge il limite deciso per quel socket aprire un altro socket ) ?
Il mio interesse principale è che la soluzione sia il più stabile e veloce possibile in quanto si tratta di gestire anche 500 tavoli contemporaneamente.
Cosa mi consigliate di fare?
Grazie.
Rispondi
Quoting
ancio
il 13 gennaio 2009 alle 13:36
393 messaggi
dal 08 maggio 2003
www.rsv-service.com
Niente???
Rispondi
Quoting
AlessC-MSFT
il 31 gennaio 2009 alle 10:35
176 messaggi
dal 04 giugno 2007
Contributi
|
Blog
Se ti dico che i server di Live Messenger che gestiscono la presenza sono in grado di gestire circa trenta milioni di connessioni contemporanee per box con una server app scritta in managed code ti basta?
L'idea di cambiare port per ogni tavolo mi suona male.
Ragioniamo in termini teorici per un attimo: il concetto di tavolo in questo ambito e' parte del modello di dati dell'application layer. Se tu lo implementassi come un port diverso o un socket diverso, l'implementazione di questo concetto sarebbe delegata al transport layer. A me non sembra una grande idea - se domani decidessi di usare un altro protocollo di trasporto dovresti riscrivere tutto.
Senza contare i problemi che avresti con i client dietro un firewall.
non so che data-rate devi trasferire, ma non penso sia stellare - il poker non e' esattamente real-time, e i dati da muovere sono pochi K alla volta.
Con un bilancio furbo tra completion port threads e user-mode thread per gestire le richieste, dovresti cavartela alla grande.
C'e' anche l'opzione di muovere tutto upstack e costruire un servizio WCF che gestisca lo stato dei tavoli venendo interpellato via un interfaccia REST dai client.
Saluti
--Alessandro
Rispondi
Quoting
ancio
il 6 febbraio 2009 alle 23:54
393 messaggi
dal 08 maggio 2003
www.rsv-service.com
Quindi tu dici di utilizzare un unico socket e un unica porta e il programma che sta in ascolto su tale porta gestisce le richieste/risposte che arrivano per tutti i tavoli? Ho capito bene?
Potrei creare una classe "tavolo" con tutte le regole le mani i giocatori etc etc e crearne una nuova istanza quando mi serve.
Che dici?
Riguardo il WCF... come fai ad inoltrare a tutti i client le informazioni? La connessione con un WCF non è persistente.. o sbaglio?? Io fino ad oggi ho sempre fatto che per interrogare un WCF mi collego lo interrogo ricevo risposta e mi scollego. Non posso ricevere dati da un WCF stando "in ascolto".
Infatti in questo caso sarebbe lui che deve chiamarmi ogni qualvolta c'è un cambiamento... si può fare senza i socket e con un WCF?
Avevo pensato a mettere un timer che interrogasse ad ogni tick il WCF per i cambiamenti ma l ho sempre trovata una soluzione meno performante del socket che mi permette di ricevere le informazioni solo ed effettivamente quando ci sono.
Mi sembri molto esperto però in materia quindi mi rimetto ad un tuo ulteriore chiarimento!
Grazie!
Modificato da ancio
il 07 febbraio 2009 00.47 -
Rispondi
Quoting
ancio
il 3 agosto 2009 alle 14:15
393 messaggi
dal 08 maggio 2003
www.rsv-service.com
Scusa se riprendo questo vecchio post ma mi sembrava più corretto che aprirne uno nuovo!
Riguardo questo argomento... che ne dici di un servizio WCF DUPLEX? Potrebbe sostenere la mole di traffico elevata che mi aspetto?
Rispondi
Quoting
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
Libri
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
E-commerce
OT
Commenti: blogs e notizie
Eventi
Torna al forum
| Feed
RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
In primo piano
Speciale web mobile: costruire applicazioni con ASP.NET, jQuery Mobile e PhoneGap
Speciale Silverlight 5: tutte le novità
Rilasciato il bollettino MS11-100 per risolvere i problemi di attacchi DoS di ASP.NET
I più letti di oggi
Windows Phone 7.5 Developer Day: costruire un'app in 60 minuti
Zip e ASP.NET
Windows 8 su ARM: avrà il desktop, Office e il connected standby
Windows Phone 7.5 Developer Day: marketplace e strumenti per monetizzare le app
Speciale web mobile: costruire applicazioni con ASP.NET, jQuery Mobile e PhoneGap
Rilasciato Entity Framework 4.3
Gestire il supporto all'intellisense JavaScript in Visual Studio 2010
Visual Basic 2010
Media
Windows Phone 7.5 Developer Day: marketplace e strumenti per monetizzare le app
Windows Phone 7.5 Developer Day: costruire app con Visual Studio 2010 e Windows Phone Runtime
Tutti i media
In evidenza
Il meglio della settimana
Speciale web mobile: costruire applicazioni con ASP.NET, jQuery Mobile e PhoneGap
Speciale Silverlight 5: tutte le novità
Sviluppare applicazioni per Windows Phone: scopri come fare con il nostro nuovissimo libro!
Sviluppa le applicazioni del futuro oggi: impara con il nostro libro HTML5 Espresso!
Community Days 2012 - Milano
Windows 8 su ARM: avrà il desktop, Office e il connected standby
Rilasciato Entity Framework 4.3
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network