我在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个)线)。 :/
答案 0 :(得分:1)
首先,你想要为此安装快递,让生活更轻松:)
npm install express
或npm -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>
您只需将其转换为模板,就可以了。