2012-12-18 17 views
5

これはどこかで解決する必要があると感じることはできませんが、見つけられたら駄目です。問題の一部は、私が木の木を見るためにクライアント側で多すぎる議論があることかもしれません。NodeJSのWeb Socketsサーバー側の実装

とにかくお詫び申し上げます、ここに私がしたいことがあります。 WebSocketsのプラットフォームに依存しないサーバー側の実装が必要です。私はNodeJSで実行したいです。

ここで私がこのトピックで見つけたものの99%がsocket.ioについて語っています。しかし、私が言うことができる限り、これはWebSocketではなく、それ自体が特別な「余分な」プロトコルです。私は "(まだ)標準によって"働く何かが必要です。

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

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

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

ああ、もう1つのこと、私はツールを "接続"と平和的に共存させたいと思います。

TIA、 トビー

答えて

4

私はクライアントのダイレクトポート(なしとすることなく、異なるプラットフォーム上でSocket.IOを使用しようとしたとき、私は、現時点ではあなたが直面している正確に同じ問題を抱えていましたそれを自分で移植する動機)。

私はsocket.ioから砂糖なしのノードのための標準ベースのWebSocketの実装ですWSを使用するように私のコードを移動することになりました。

それは、いくつかの異なるプラットフォーム上で、私の場合には非常にうまく機能していますが、接続/再接続コードの大部分を手直しする必要があるだろうなど

ウェブサイト:link

GitHubの:link

NPM: npm install ws

+0

OK、ありがとう、私はそれを行こうと思います(遅れて申し訳ありません、私は町から外れました)。 –

0

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

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

例:

  • は、Visual Studioの2012年の
  • GYP_MSVS_VERSION=2012を設定 見る完全なリストについてはGYP_MSVS_VERSION=2013e( 'E' が 'Express Editionを' の略)

を設定 - https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

これは、NodeJSのWindowsユーザーにとっては苦労します。これは、Visual Studio instaのコピーを所有していることを前提としています多くの開発者ではないエンドユーザーが決して持っていないものです。そこで私はJoyentに、COREノードの一部としてWebソケットを組み込み、NodeJSインストールの一環としてGNU gccコンパイラを同梱して、この問題を永久に修正できるようにして、Windowsノードのユーザーに強制的にまたは何か他のものをダウンロードしてください。

であなたの投票を追加すること自由に感じなさい:

注:Joyentのチームはsocket.ioバックwsが失敗したコンパイルするときに遅い実装を使用する落ちることが示されています。言い換えれば、あなたのコードはまだ実行されます。これは、エンドユーザーがsocket.ioまたはwsに依存するアプリケーションのインストールを実行する際に、インストールプロセス中に赤色のエラーテキストを表示するためにはっきりしません。

関連する問題