我用快速生成器创建了一个Express 3应用程序并安装了socket.io. 在app.js上我发出一条消息: io.sockets.on('connection', function(socket) { socket.emit('init', { msg: 'Welcome'});}); 在服务器端我写道: !DOCT
在app.js上我发出一条消息:
io.sockets.on('connection', function(socket) {
socket.emit('init', { msg: 'Welcome'});
});
在服务器端我写道:
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
<script src='/socket.io/socket.io.js' />
<script>
var socket = io.connect('http://127.0.0.1:3000');
socket.on('init', function (data) {
console.log(data.msg);
});
</script>
</head>
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
</body>
</html>
如果我运行app.js它应该在控制台上打印“欢迎”,但它不是任何东西.我检查了/socket.io/socket.io.js是否已加入,确实如此.
运行应用程序时,我得到:
info - socket.io started Express server listening on port 3000 GET / 200 28ms - 472 GET /stylesheets/style.css 200 163ms - 110 debug - served static content /socket.io.js
我错过了什么吗?我遵循了socket.io网页示例,但似乎服务器运行良好……也许是客户端的东西?
编辑:我也试过var socket = io.connect(‘http://127.0.0.1’,{port:3000});在客户端,并从正文运行所有套接字客户端.
在io.sockets.on事件上执行console.log没有提供任何内容……因此永远不会达到“连接”.
将index.jade文件添加到我之前发布的示例中server.js
var app = require('express')()
, http = require('http')
, server = http.createServer(app)
, io = require('socket.io').listen(server)
server.listen(3000)
io.set('loglevel',10) // set log level to get all debug messages
io.on('connection',function(socket){
socket.emit('init',{msg:"test"})
})
app.get('/',function(req,res){
res.render('index.jade')
})
/views/index.jade
doctype html
html
head
script(src="/socket.io/socket.io.js")
script.
var sockets = io.connect()
sockets.on('init',function(msg){
alert(msg.msg)
})
