2015-11-02 13 views
5

WebSocketではなく単純なソケットを使用して単純なC#サーバーに接続するjavascriptプログラムを作成することは可能ですか?JavaScriptからC#サーバーに接続

サンプルを手伝ってもらえますか?

+0

JavaScriptはどこで実行されていますか?ブラウザでは?コンソールで?サーバー上で? –

+0

ブラウザで実行中のJavaScript –

+2

ブラウザでソケット接続を使用することはできません。ブラウザから直接アクセスソケットに接続すると、大きな危険が生じます。 – SilentTremor

答えて

1

ウェブブラウザで実行されているJavascriptコードからTCP接続を確立する標準的な方法はありません。 (@Johannes Hahnの回答を参照)

クライアントとサーバー間の通信には、MicrosoftのSignalRライブラリを検討してください。これは、ブラウザで実行されているJavascriptプログラムがC#サーバーと通信できるように設計されています。 SignalRはウェブソケットを使用します。しかし、他の輸送手段に戻ってウェブソケットを入手できない場合は、引き続き機能します。また、Websocketを使用しないようにする必要がある場合は、トランスポートを指定することもできます。

SignalR接続はHTTPとして開始され、使用可能な場合はWebSocket接続に昇格されます。 WebSocketは、サーバーメモリを最も効率的に使用し、レイテンシが最小で、最も基本的な機能(クライアントとサーバー間の全二重通信など)を備えているため、SignalRの理想的なトランスポートですが、 WebSocketでは、サーバーがWindows Server 2012またはWindows 8、および.NET Framework 4.5を使用する必要があります。これらの要件が満たされない場合、SignalRは他のトランスポートを使用して接続を試みます。


はまた、あなたのJavascriptがWebブラウザで実行されている ないであれば、あなたは 通常のネットワーク接続を行うことがあるので注意してください。たとえば、Node.jsで実行されているJavascriptアプリケーション

0

少なくともFirefoxはソケットについて知っているようですが、https://developer.mozilla.org/en-US/docs/Web/API/TCP_Socket_APIを参照してください。しかし、(同じソースから取った)TCPソケットまたはUDPソケットは標準の一部ではないため、他のブラウザではサポートされていないか全く異なっている可能性があります。

0

原則として、セキュリティ上の理由から、ブラウザは限られたプロトコルしか使用できません。 ChromeにはソケットAPIがありますが、これは標準ではありません - https://developer.chrome.com/apps/sockets_tcpサーバへのWebSocket接続を使用し、次にTCPソケット接続を確立するソリューションがあります。 https://github.com/kanaka/websockify、​​なので、WebSocketをサーバーに直接追加できない場合は、これらを確認してください。