jvi*_*tti 3 node.js express socket.io
我用快速生成器创建了一个Express 3应用程序并安装了socket.io.在app.js上我发出一条消息:
io.sockets.on('connection', function(socket) {
socket.emit('init', { msg: 'Welcome'});
});
Run Code Online (Sandbox Code Playgroud)
在服务器端我写道:
<!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>
Run Code Online (Sandbox Code Playgroud)
如果我运行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
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?我遵循了socket.io网页示例,但似乎服务器运行良好......也许是客户端的东西?
编辑:我也尝试var socket = io.connect('http://127.0.0.1', { port: 3000 } );在客户端,并从正文运行所有套接字客户端.
在io.sockets.on事件上执行console.log没有提供任何内容......因此永远不会达到"连接".
zem*_*rco 11
app.js:
var express = require('express')
, routes = require('./routes')
, http = require('http')
, path = require('path');
var app = express();
var server = http.createServer(app)
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.get('/', routes.index);
server.listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
var io = require("socket.io").listen(server)
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
});
Run Code Online (Sandbox Code Playgroud)
index.html的:
<script>
var socket = io.connect();
socket.on('news', function (data) {
console.log(data);
});
</script>
Run Code Online (Sandbox Code Playgroud)
在浏览器的控制台中,您应该看到一个包含"hello"的对象:"world".
| 归档时间: |
|
| 查看次数: |
10950 次 |
| 最近记录: |