5

この問題の一部は、私が木のために木を見るにはクライアント側であまりにも多くの議論があるということかもしれません。

とにかく、これが私がやりたいことです。プラットフォームに依存しないWebSocketのサーバー側実装が必要です。NodeJSで実行したいのですが。

さて、このトピックで私が見つけたものの99%は、socket.ioについて語っています。しかし、私が知る限り、それはWebSocketではなく、それ自体が特別な「追加の」プロトコルです。「(まだ)標準では」機能するものが必要です。それには正当な理由があり、それは交渉の余地がないので、私を信じてください。

そこで、WebSocketを試しましたが、Windowsで実行するにはPythonとさらに悪いことにVisual Studioの両方が必要です(または、さらに悪いことに、Visual Studioの両方が必要なようです)。プラットフォームに依存せず、このような特別なものを必要としないものが必要です。

node-websocket-serverも試しましたが、まったく機能しません。メインページの例は私には失敗します。接続を受け入れているように見えますが、クライアントはそれを認識せず、どちらの側も何も送信せず、クライアントは接続が閉じているとすぐに認識します。確かに、私が今までに得たのは「接続」コールバックだけであり、それからそれは死んでいるようです。デバッグモードで実行しても、flush()メソッドがないオブジェクトやその他のオブジェクトに関する内部エラーを除いて、何も役に立ちませんでした。私はこれが廃止されたプロジェクトであると半信半疑です。

だから、私はアイデアがありません。純粋にWebSocketの(非)仕様で動作するようにsocket.ioを説得することは可能ですか?見つけられなかったnode-websocket-serverを動作させる方法はありますか?WebSocketでVisualStudioの依存関係を回避する方法はありますか、それともすべての要件を満たす他のNodeJSベースのツールがありますか?

ああ、もう1つ、ツールを「接続」と平和的に共存させたいのです。これは、通常のドキュメント配信に使用しているためです。

4

2 に答える 2

4

クライアントの直接ポートなしで(そして自分でポートする動機なしで)別のプラットフォームでSocket.IOを使用しようとしたときに、あなたが直面しているのとまったく同じ問題がありました。

wsを使用するようにコードを移動することになりました。これは、socket.io から追加された砂糖を使用せずに、ノードの標準ベースの websocket 実装です。

私の場合、いくつかの異なるプラットフォームで非常にうまく機能しますが、ほとんどの接続/再接続コードなどを作り直す必要があります.

ウェブサイト :リンク

GitHub :リンク

NPM :npm install ws

于 2012-12-18T07:58:36.373 に答える
1

Socket.io は内部で WS を使用するため、Windows で同じインストールの問題が発生する可能性があります。wsコンポーネントを機能させるには Visual Studio 2010 をインストールする必要があると不平を言うことがあります。

node-gypただし、環境変数を介して C++ コンパイラを実行するVisual Studio のバージョンを構成できます。

例:

  • GYP_MSVS_VERSION=2012Visual Studio 2012 用に設定
  • セットGYP_MSVS_VERSION=2013e(「e」は「エクスプレス エディション」を表します)

完全なリストについては、https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294を参照してください。

これは NodeJS の Windows ユーザーにとっては苦痛です。Visual Studio のコピーがインストールされていることを前提としているためです。したがって、私は Joyent にロビー活動を行って、CORE ノードの一部として Web ソケットを含め、NodeJS インストールの一部として GNU gcc コンパイラを出荷するよう奨励しています。これにより、この問題を恒久的に修正し、Windows ノードのユーザーに調整を強制する必要がなくなります。環境または他のものをダウンロードします。

自由に投票してください:

注: Joyent チームは、コンパイルが失敗した場合、socket.io が低速の実装を使用するようにフォールバックすることを示していwsます。つまり、コードは引き続き実行されますが、速度は遅くなります。これは、socket.io または ws に依存するアプリのインストールを実行しているエンド ユーザーにとっては明確ではありません。インストール プロセス中に赤いエラー テキストが表示され、ユーザーはインストールが失敗したと思い込んでしまいますが、実際にはゆっくりと動作します。

于 2014-08-01T00:53:01.213 に答える