Ich bin dabei, eine Anwendung zu erstellen, die erfordert, dass Clients untereinander (ähnlich dem Chat) Nachrichten über einen Server austauschen.Gibt es eine TCP-Socket-Bibliothek/ein TCP-Socket-Protokoll, das Nachrichtenrahmen unterstützt und in JS & C# unterstützt wird?
Ich möchte den Server in JavaScript mit Node JS schreiben, die Client-Anwendungen sind in C# .NET geschrieben.
Ich habe für eine Weile recherchiert und Socket.IO wegen des Mangels an C# -Support verworfen und weil ich etwas eher Low-Level und flexibel/anpassbar suche.
Ich bin einmal eine Anwendung sehr ähnlich geschrieben, die das eingebaute NodeJS 'net' Modul als Server und C# TCPClient Client-Seite verwendet, es funktioniert, aber es verwendet einen Stream und ich muss die Länge der Nachricht voranstellen vor jeder Nachricht.
Ich bin auf der Suche nach etwas mehr redundante, die Message-Framing out-of-the-Box hat und von den Sprachen unterstützt wird, die ich benutze.
Ich habe das 'ws' (WebSocket) npm Modul gefunden, das wie ein vielversprechender Kandidat erscheint, besonders da es gut mit der C# Socket Klasse (die auch der zugrundeliegende Socket der TCPistener und TCPClient Klassen ist) übereinstimmt) aber für das Leben von mir kann ich nicht herausfinden, ob ich immer noch einen Socket Stream erwarten muss oder einfach einen Event-Handler für neue Nachrichtenereignisse setzen muss.
Ich bin auf der Suche nach etwas, das wirklich einfach zu implementieren ist und wird für jede Nachricht, die ich erhalte, damit ich damit umgehen kann, unabhängig von der Größe der Nachricht oder Puffer (ich plane, durchschnittliche Nachrichten ein Megabyte an Größe senden. ..), ich möchte nie mit dem Puffer umgehen, und natürlich sollte es in den oben genannten Sprachen gut unterstützt werden.
WebSockets mit Nachrichten funktioniert, nicht wahr muss der Größe vorangestellt werden, Sie werden nur an das Nachrichtenereignis angehängt und es wird vollständig empfangen. – Gusman
@Gusman so serverseitig benutze ich 'ws'? Wie lautet der Name des Pakets/der Klasse, die clientseitig verwendet werden soll (mit C#)? – effy
Ich benutze Websocket-sharp, weil es portabel ist und perfekt mit mono/linux funktioniert, aber wenn dein Ziel nur Windows ist, kannst du die integrierten websockets verwenden: https://msdn.microsoft.com/es-es/library/system.net .websockets.websocket (v = vs.110) .aspx – Gusman