测试安装需要简单的示例

时间:2011-12-22 22:10:26

标签: socket.io

我在VPS上运行LAMP服务器,我刚刚安装了socket.IO(节点0.6.6,因为npm拒绝在0.7.0-pre上安装)。 现在,我想用一个简单的例子来测试我的安装,例如一个简单的聊天应用程序,并且还可以从中学习如何在我自己的应用程序中使用它。

然而,这有点奇怪。似乎有一个众所周知的10行聊天示例,但它已经从开发人员的网站上消失了,尽管有数百个引用它,数小时或搜索,但我找不到实际的例子。

隐藏在http://socket.io的页面源代码中我找到了带有昵称的改进版本的屏幕截图,仍然有10行,但仍然没有代码示例,它也不公开。 http://howtonode.org/websockets-socketio上的最后一个示例看起来已经如此,但是没有匹配的服务器端脚本或html页面来嵌入它。

有谁知道这是怎么回事?任何人都可以提供一个工作的小例子(聊天或多人游戏)来演示socket.IO的基础知识,它适用于当前版本吗?

编辑:从socket.io网站的例子中,我认为我需要“广播”,但我根本不清楚如何构建一个有效的聊天应用程序(即使他们声称它只有10个)线)。 :/

1 个答案:

答案 0 :(得分:1)

首先,你想要为此安装快递,让生活更轻松:)

npm install expressnpm -g install express如果全局安装,则在安装后创建应用,方法是转到工作目录并键入express sample以创建名为sample的项目。进入示例目录并使用您喜欢的编辑器打开app.js

用以下内容替换内容:

/**
 * Module dependencies.
 */    
var express = require('express')
  , io = require('socket.io')
  , routes = require('./routes')

var app = module.exports = express.createServer();

// Configuration
app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
});

app.configure('production', function(){
  app.use(express.errorHandler()); 
});

// Routes
app.get('/', routes.index);

//IO Bindings
io.sockets.on('connection',function (client){

    client.on('hello', function(data){
        //Client sent hello
    });

    //Add the rest of your event bindings here for client scopes
});

app.listen(8080);
io.listen(app);

console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);

然后你可以修改你的玉,将以下html吐出到头版:

<!DOCTYPE html>
<html>
    <head>
        <script src="/socket.io/socket.io.js"></script>
        <script>
            var socket = io.connect(/*defaults to so ip:port*/);
            socket.on('connect', function (){
                console.log("Connected");
                socket.emit('hello', { my: 'world' });
            });
        </script>
    </head>
    <body>
         Body Here
    </body>
</html>

您只需将其转换为模板,就可以了。