2015-11-02 16 views
5

È possibile creare un programma javascript che si connette a un semplice server C# utilizzando un semplice socket e non un WebSocket.connettersi al server C# da javascript

puoi aiutarmi con un campione.

+0

JavaScript in esecuzione dove? In un browser? In una console? Su un server? –

+0

JavaScript in esecuzione in un browser –

+2

No, non è possibile utilizzare la connessione socket nel browser, il socket di accesso direttamente dal browser non accadrà mai perché si apre un rischio enorme. – SilentTremor

risposta

1

Non esiste un modo standard per effettuare una connessione TCP dal codice Javascript in esecuzione in un browser web. (Vedere la risposta di @Johannes Hahn)

Per comunicare tra client e server, prendere in considerazione la libreria Microsoft SignalR. È progettato per consentire a un programma Javascript, in esecuzione nel browser, di comunicare con un server C#. SignalR userà websocket; tuttavia, continuerà a funzionare se i websocket non sono disponibili ricadendo su altri trasporti. È inoltre possibile specificare i trasporti, se è necessario impedirgli di tentare di utilizzare websockets.

La connessione SignalR si avvia come HTTP e viene quindi promossa a una connessione WebSocket se disponibile. WebSocket è il trasporto ideale per SignalR, dal momento che rende l'uso più efficiente della memoria del server, ha la latenza più bassa e ha le caratteristiche più sottostanti (come la comunicazione full duplex tra client e server), ma ha anche i requisiti più stringenti : WebSocket richiede che il server utilizzi Windows Server 2012 o Windows 8 e .NET Framework 4.5. Se tali requisiti non vengono soddisfatti, SignalR tenterà di utilizzare altri trasporti per effettuare le connessioni.


Inoltre, essere consapevoli che se Javascript è non esecuzione in un browser Web, è possibile effettuare connessioni di rete regolari. Ad esempio, un'applicazione Javascript in esecuzione su Node.js.

0

In linea di principio n. Per motivi di sicurezza, i browser consentono solo un numero limitato di protocolli. Chrome ha un'API socket, ma non è standard - https://developer.chrome.com/apps/sockets_tcp. Esistono soluzioni che utilizzano una connessione WebSocket a un server che stabilisce quindi una connessione socket TCP, ad es. https://github.com/kanaka/websockify, http://artemyankov.com/tcp-client-for-browsers/, quindi se non è possibile aggiungere WebSocket direttamente al server, è possibile che si desideri verificarlo.

Problemi correlati