我用快速生成器创建了一个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) })