0

そのようなばかげた質問、それについて申し訳ありません。そこで、node.js / sockets.io/express.jsをダウンロードしました。シンプルなマルチプレイヤーゲームを作ろうとしていますが、現在はhelloworldから始めています。

私は次のディレクトリ構造を持っています:

-index.html
-server.js
-package.json
-node_modules/

server.jsのコードは次のとおりです。

var app = require('express');
var http = require('http');
var io = require('socket.io');
/*
var server = http.createServer(function(req,res){
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('<h1>Hello world</h1>');
}).listen(80);
*/

var server = http.createServer(app);
server.listen(80);

var socket = io.listen(server);

var usersCount = 0;

socket.on('conection', function(client){
    ++usersCount;
    console.log('client connecting... client# = ' + userCount);
    client.emit('onMessageReceived',{msg:"You are client number: " + userCount});
});

私のクライアントコードはindex.htmlにあり、その内容は次のとおりです。

<html>
 <head>
    <title> Client Code </title>
    <script src="/socket.io/socket.io.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">    </script>
 </head>

 <body>
  <script>
    $(document).ready(function(){
        var socket = new io.Socket({'127.0.0.1',{port:80}});
        socket.connect();
        socket.on('connect', function(obj){
            console.log('client connection successful..');
        });
        socket.on('onMessageReceived', function(data){
        console.log("client has received message: " + data.msg);
        });
    });
  </script>
 </body>

そして私のpackage.jsonには以下が含まれています:

{
  "name": "hello_world",
  "version": "0.0.0",
  "description": "hello world test program",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": "",
  "author": "",
  "license": "BSD",
  "dependencies":{
    "express":"3.0.5",
    "http": "",
    "socket.io":""
  }
}

終了した場合でも、アプリの実行方法がわかりません。次に進む方法に関するヘルプ。私は今、server.jsを常に実行し、server.jsに接続するために複数のクライアントがindex.htmlを開く必要があると推測しています。

4

2 に答える 2

1

まず、Hello World プログラムで実際にポート 80 を使用したくない場合は、それが難しくなり、root ユーザーになる必要があります。代わりにポート 8080 を使用してください。ポート 80 よりも簡単です。次に、プログラムを実行するには、コマンド ラインと cd で server.js のディレクトリに移動して実行node server.js し、ブラウザで localhost:8080 を開き、コンソールにログが表示されるはずです。お役に立てれば

于 2012-12-25T17:28:57.427 に答える
1

サーバーを適切に宣言していないようです。Express 3.xは次のようになるため、Express サーバーのインスタンスを作成する必要があります。

var io = require('socket.io')
  , express = require('express');

var app = express()
  , server = require('http').createServer(app)
  , io = io.listen(server);

次に、ポートをリッスンするサーバーを設定できます

server.listen(8080);

その後、ページをレンダリングできます

app.get('/', function(req, res){
     res.render('index');
});
于 2012-12-25T18:12:29.337 に答える