Guillermo Rauch によるローカルおよび cloud9 プラットフォームでの非常に基本的な socket.io チャット例 (予備テスト) の 1 つを使用して、自分のマシンで socket.io を動作させることができません。私はexpress 2.5.xとexpress 3の両方と組み合わせてsocket.ioを試しました(それに応じてサーバーコードを変更します)、Nodeclipseとコマンドラインの実行の両方を使用して同じ動作を取得します:
情報: socket.io が
ポート 3000 で @ localhost を実行しているソケット サーバーを開始しました
訪問すると、次のlocalhost:3000
ようになります。
デバッグ: 提供された静的コンテンツ /socket.io
ハンドシェークがなく、クライアントが接続していない可能性があります。
おそらく問題は簡単にわかりますが、ここや他の場所で自分のケースに合った答えを見つけることができませんでした. ここに私の環境があります:
Windows 7 x86 または Windows 8 64 ビット。最新の安定したノードで Nodeclipse (間違っていなければ 0.10.15); 使用: google chrome、firefox、最新の IE。
また、WAMP サーバー経由でインデックス ページを提供しようとしました。
多くの代替案を試しましたが、これはコードの問題ではなく、何か他のものに属していることを示唆しているようです (最新のノードのインストールでうまく動作しないことを表現しますか? 環境変数に何か問題がありますか?);
Express は /socket.io/socket.io.js ファイルを提供しているようです。これは、localhost:3000/socket.io/socket.io.js と入力すると、どのブラウザーからでも読み取ることができるためです (これが正しいかどうかはわかりません)。テスト)。
クライアントコードは次のとおりです。
<!doctype html>
<html>
<head>
<title>my test</title>
<script src="/socket.io/socket.io.js"></script>
<script src="chat.js">
<link href="/stylesheets/style.css" rel="stylesheet" />
</head>
<body>
<div id="chat">
<ul id="messages"></ul>
<form id="form">
<input type="text" id="input" />
<button>Send</button>
</form>
</div>
</body>
</html>
サーバー側アプリは次のとおりです。
var express = require('express');
var sio = require('socket.io');
var app = express.createServer(
express.bodyParser(),
express.static('public'));
app.listen(3000);
var io = sio.listen(app);
console.log('Socket server running @ localhost on port ' + 3000);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log('hello');
});
});
chat.js には以下が含まれます。
window.onload = function() {
var socket = io.connect("http://localhost:3000");
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
};
これらは、nodeclipse ワークスペース フォルダー (c:/users/myname/workspace/nameoftheapp) から指定された npm install コマンドを介してローカルにインストールされた (express もグローバルにインストールされた) socket.io および Express のバージョンです。 ", "socket.io": "0.9.16"
プロジェクトの構造
node_modules
|- [...] (all the installed folders and files]
public
|- stylesheets
--|-style.css
|- index.html
app.js
package.json
readme.md
ワークスペースを正しく指すように接続に何かを設定する必要がありますか?