如何用铁路创建socket.io示例

时间:2012-10-23 02:17:21

标签: socket.io

我正在关注nodejs-drawing-game,一个socket.io(http://tutorialzine.com/2012/08/nodejs-drawing-game/)的示例程序,使用railwayjs框架创建一个新副本( http://railwayjs.com/)。顺便说一句,我的开发环境是Win7的node.js版本。

我可以在我的本地电脑上运行nodejs-drawing-game本身但是当我把它作为wailwayjs的模块运行时,我没有幸运。 我是node.js,railwayjs的新手...任何人都可以帮助我克服这个问题?任何帮助表示赞赏。

■项目目录:

+ yeahjs
+++ app / controllers
----- draw_controller.js
+++ app / views / draw
----- index.ejs   // see code as below
+++ node_modules
----- socket.io
----- socket.io-client    
+++ public
+++++ images
+++++ javascripts
----- script.js // the same as you can see on http://tutorialzine.com/2012/08/nodejs-drawing-game/
+++++ stylesheets

■draw_controller.js

load('application');
action(function index() {   
    draw_app.init(); 
    render({
        title: "draw#index"
    });
});

var draw_app = {
    init: function(){
        // Including libraries
        var io = require('socket.io').listen(app);

        // Delete this row if you want to see debug messages
        io.set('log level', 3);

        // Listen for incoming connections from clients
        io.sockets.on('connection', function (socket) {

            // Start listening for mouse move events
            socket.on('mousemove', function (data) {

                // This line sends the event (broadcasts it)
                // to everyone except the originating client.
                socket.broadcast.emit('moving', data);
            });
        });
    }
}

■index.ejs

<!-- The stylesheets -->
<link rel="stylesheet" href="stylesheets/styles.css" />

<!--[if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<div id="cursors">
    <!-- The mouse pointers will be created here -->
</div>

<canvas id="paper" width="1000" height="600" style="border:2px solid;">
    Your browser needs to support canvas for this to work!
</canvas>

<hgroup id="instructions">      
    <h1>Draw anywhere!</h1>
    <h2>You will see everyone else who's doing the same.</h2>
    <h3>Tip: if the stage gets dirty, simply reload the page</h3>
</hgroup>

<!-- JavaScript includes. Notice that socket.io.js is served by node.js -->
<script src="/socket.io/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script src="javascripts/script.js"></script>

■NODE-控制台:

debug: broadcasting packet
debug: xhr-polling received data packet 5:::{"name":"mousemove","args":[{"x":181,"y":139,"drawing":false,"id":599253111261}]}
debug: broadcasting packet
debug: setting request GET /socket.io/1/websocket/IuToQtNbcjsODD1VQjSa
debug: set heartbeat interval for client IuToQtNbcjsODD1VQjSa
debug: websocket writing 7:::1+0
warn: client not handshaken client should reconnect
info: transport end (error)
debug: set close timeout for client IuToQtNbcjsODD1VQjSa
debug: cleared close timeout for client IuToQtNbcjsODD1VQjSa
debug: cleared heartbeat interval for client IuToQtNbcjsODD1VQjSa
debug: discarding transport
debug: clearing poll timeout
debug: discarding transport
debug: setting request GET /socket.io/1/websocket/IuToQtNbcjsODD1VQjSa
debug: set heartbeat interval for client IuToQtNbcjsODD1VQjSa
debug: set close timeout for client IuToQtNbcjsODD1VQjSa
info: socket error Error: write Unknown system errno 10058
    at errnoException (net.js:769:11)
    at Socket._write (net.js:551:19)
    at Socket.write (net.js:510:15)
    at WebSocket.onSocketConnect (C:\public_html\yeahjs\node_modules\socket.io\lib\transports\websocket\hybi-16.js:132:17)
    at WebSocket.Transport.handleRequest (C:\public_html\yeahjs\node_modules\socket.io\lib\transport.js:71:10)
    at WebSocket.Transport (C:\public_html\yeahjs\node_modules\socket.io\lib\transport.js:31:8)
    at new WebSocket (C:\public_html\yeahjs\node_modules\socket.io\lib\transports\websocket\hybi-16.js:59:13)
    at new WebSocket (C:\public_html\yeahjs\node_modules\socket.io\lib\transports\websocket.js:31:17)
    at Manager.handleClient (C:\public_html\yeahjs\node_modules\socket.io\lib\manager.js:660:19)
    at Manager.handleUpgrade (C:\public_html\yeahjs\node_modules\socket.io\lib\manager.js:617:8)
debug: xhr-polling received data packet 5:::{"name":"mousemove","args":[{"x":200,"y":108,"drawing":true,"id":599253111261}]}
debug: broadcasting packet
debug: xhr-polling received data packet 0::
debug: got disconnection packet
info: transport end by forced client disconnection
info: transport end (booted)

0 个答案:

没有答案