当前位置 : 主页 > 网页制作 > Nodejs >

node.js – Socket.io和Express 3

来源:互联网 收集:自由互联 发布时间:2021-06-16
我用快速生成器创建了一个Express 3应用程序并安装了socket.io. 在app.js上我发出一条消息: io.sockets.on('connection', function(socket) { socket.emit('init', { msg: 'Welcome'});}); 在服务器端我写道: !DOCT
我用快速生成器创建了一个Express 3应用程序并安装了socket.io.
在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)
      })
网友评论