Tôi đang cố gắng sử dụng Node.js với Socket.IO để tạo thông điệp giữa trình duyệt và ứng dụng khách, sau the guide.Sử dụng socket.io với nodej trên máy chủ có apache dưới dạng proxy ngược
Tuy nhiên, tôi phải thiết lập Node ngược proxy phía sau Apache. Vì vậy, thay vì example.com:8080 cho nút, tôi đang sử dụng example.com/nodejs/.
Điều này có vẻ khiến Socket.IO mất cảm giác. Đây là ứng dụng nút của tôi
var io = require('socket.io').listen(8080);
// this has to be here, otherwise the client tries to
// send events to example.com/socket.io instead of example.com/nodejs/socket.io
io.set('resource', '/nodejs/socket.io');
io.sockets.on('connection', function (socket) {
socket.emit('bar', { one: '1'});
socket.on('foo', function(data)
{
console.log(data);
});
});
Và đây là những gì tập tin khách hàng của tôi trông giống như
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Socket.IO test</title>
<script src="http://example.com/nodejs/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://example.com/nodejs/');
console.log(socket);
socket.on('bar', function (data)
{
console.log(data);
socket.emit('foo', {bar:'baz'});
});
socket.emit('foo',{bar:'baz'});
</script>
</head>
<body>
<p id="hello">Hello World</p>
</body>
</html>
Vấn đề ở đây là tài liệu tham khảo kịch bản để http://example.com/nodejs/socket.io/socket.io.js. Nó không trả về nội dung javasscript mong đợi - thay vào đó nó trả về "Chào mừng bạn đến socket.io" như thể tôi nhấn http://example.com/nodejs/.
Bất kỳ ý tưởng nào về cách tôi có thể thực hiện công việc này?
Tôi biết điều này là không liên quan đến câu hỏi trong tầm tay (và hãy gọi cho tôi nếu tôi nên mở một câu hỏi SO mới), nhưng tôi tò mò về những gì mà Apache httpd.conf của bạn trông như thế nào. Tôi đã thiết lập proxy để chuyển sang máy chủ node.js thực tế, tuy nhiên, tôi không thể nhận proxy proxy trên web hoạt động. Bạn có thể vui lòng cho một ví dụ về cách bạn đang làm điều này với Apache? – pmalbu
Xin lỗi, nhưng tôi không thể. Dự án này đã được thực hiện tại một cuộc chạy đua trên 2 năm trước và máy chủ được thiết lập cho nó không còn tồn tại nữa. –