我想让Socket.io工作。我的代码如下。我得到了“欢迎来到Socket.io”。当我访问时
http://localhost/index.html
但这就是我得到的。 app.js看起来会发回一条消息,但我的Javascript控制台什么都没有,除了“欢迎来到Socket.io”之外,页面上没有任何内容。我试过访问
http://localhost/chat
和
http://localhost/news
并且结果相同。我想使用Socket.io测试双向通信。这个脚本会为我做这个,并且是一个可能阻止返回消息的防火墙。这是Socket.ip V0.9页面的一个例子。
// app.js
var io = require('socket.io').listen(80);
var chat = io
.of('/chat')
.on('connection', function (socket) {
socket.emit('a message', {
that: 'only',
'/chat': 'will get'
});
chat.emit('a message', {
everyone: 'in'
, '/chat': 'will get'
});
});
var news = io
.of('/news')
.on('connection', function (socket) {
socket.emit('item', { news: 'item' });
});
index.html
//index.html
<script>
var chat = io.connect('http://localhost/chat')
, news = io.connect('http://localhost/news');
chat.on('connect', function () {
chat.emit('hi!');
});
news.on('news', function () {
news.emit('woot');
});
</script>
答案 0 :(得分:0)
Oh. Interesting. It does not look like you have a server even running, just io.
//app.js
var app = express();
var http = require('http');
var server = http.createServer(app);
app.use(express.static(__dirname + '/public'));
/* place index.html in /public */
var port = process.env.PORT || 5050;
var io = require('socket.io').listen(server, {
log : false
});
io.sockets.on('connection', function(socket) {
socket.on('hi', function(data) {
console.log('yay');
socket.emit('hello');
});
});
server.listen(port);
//for index.html do the same.
chat.on('connect', function () {
chat.emit('hi');
});
chat.on('hello',function(){
console.log('yay got hello');
}):
// 我刚刚开始stackoverflow。解释不是很好。我在这里使用快递,因为它更简单。如果这不起作用,请告诉我您正在使用的node,express和socket.io的版本。另外,我还没有为socket.io使用名称空间,所以这可能是一个问题。