我正在使用 NodeJS v0.4.8 和最新版本的 socket.io
npm 安装 socket.io
在Ubuntu上:
Linux mars 2.6.38-8-generic #42-Ubuntu SMP 周一 4 月 11 日 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux
不幸的是,以下代码不会产生任何输出,无论是在客户端还是在服务器端。
有人知道吗?
服务器端
var http = require('http'),
io = require('socket.io'),
fs = require('fs'),
sys = require('sys');
respcont = fs.readFileSync('testclient.js');
server = http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(respcont);
});
server.listen(8082);
var socket = io.listen(server);
socket.on('connection', function(client){
sys.puts("New client is here!");
client.send("hello world");
client.on('message', function(msg) { sys.puts("client has sent:"+msg); }) ;
client.on('disconnect', function() { sys.puts("Client has disconnected"); }) ;
});
客户端
<html>
<body>
<script type="text/javascript" src="http://localhost:8082/socket.io/socket.io.js"></script>
<script>
var socket = new io.Socket(null,{port:8082,rememberTransport:true,timeout:1500});
socket.connect();
socket.on('connect', function() {
console.log('connected to server');
socket.send('Hi Server...');
});
socket.on('message', function() {
console.log('received a message!');
});
socket.on('disconnect', function() {
console.log('disconnected from server');
});
</script>
</body>
</html>
NodeJS 的输出(不是 sys.puts("...") 调用)是:
信息 - socket.io 开始调试 -
提供静态 /socket.io.js 调试 -
客户端授权信息-握手
授权信息-握手
b61a5c2751c1c8c8493db4b79d19e779