我们有一些使用nodejs和socket.io作为服务器的聊天应用程序。客户端只是一个基于PHP的常规应用程序。它工作得很好。
但是,我们希望为与socket.io应用程序无关的网址提供404错误,例如基本网址,favicon.ico和其他网址。
例如,服务器位于:
https://awesome-messenger.com
和通常的socket.io url位于:
https://awesome-messenger.com/socket.io/*
我们想将404抛给其他任何未被socket.io处理的内容。
当前设置:
示例代码(messenger.js):
var app = require('http').createServer()
var io = require('socket.io')(app);
app.listen(4040);
io.on('connection', function (socket) {
socket.on('joinRoom', function(data){
socket.join(data.room);
});
// Other codes here...
});
开始于:
node /path/to/messenger.js
谢谢!
答案 0 :(得分:0)
我们使用express + socket.io来提供自定义主页并在nonsocket.io网址上抛出404错误。我从这里得到了这个想法:http://socket.io/get-started/chat/
var app = require('express')(),
http = require('http').Server(app),
io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.on('joinRoom', function(data){
socket.join(data.room);
});
// Other codes
});
http.listen(4040, function () {
console.log('Listening on *:4040');
});
因此,如果我们访问类似于:/favicon.ico或/ foo / bar的内容,则会抛出一个简单的404错误。