Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js服务器从localhost更改为apache_Javascript_Node.js_Apache - Fatal编程技术网

Javascript Node.js服务器从localhost更改为apache

Javascript Node.js服务器从localhost更改为apache,javascript,node.js,apache,Javascript,Node.js,Apache,我应该如何在apache服务器上运行node.js代码,该服务器当前正在使用localhost和apache服务器的端口5000,端口8080。 这是我的服务器端代码chatserver.js var httpd = require('http').createServer(handler); var io = require('socket.io').listen(httpd); var fs = require('fs'); httpd.listen(5000); function ha

我应该如何在apache服务器上运行node.js代码,该服务器当前正在使用localhost和apache服务器的端口5000,端口8080。 这是我的服务器端代码chatserver.js

var httpd = require('http').createServer(handler);
var io = require('socket.io').listen(httpd);
var fs = require('fs');

httpd.listen(5000);

function handler(req, res) {
  fs.readFile(__dirname + '/index.html',
    function(err, data) {
      if (err) {
       res.writeHead(500);
       return res.end('Error loading index.html');
      }

      res.writeHead(200);
      res.end(data);
    }
  );
}

io.sockets.on('connection', function (socket) {
  socket.on('clientMessage', function(content) {
    socket.emit('serverMessage', 'You said: ' + content);
    socket.broadcast.emit('serverMessage', socket.id + ' said: ' + 
      content);
  });
}); 
这是我的客户端代码。 index.html

<html>
  <head>
    <title>Node.js WebSocket chat</title>
    <style type="text/css">
      #input {
        width: 200px;
      }
      #messages {
        position: fixed;
        top: 40px;
        bottom: 8px;
        left: 8px;
        right: 8px;
        border: 1px solid #EEEEEE;
        padding: 8px;
      }
    </style>
  </head>

  <body>

    Your message:
    <input type="text" id="input">

    <div id="messages"></div>

    <script src="http://localhost:5000/socket.io/socket.io.js"></script>
    <script type="text/javascript">
      var messagesElement = document.getElementById('messages');
      var lastMessageElement = null;

      function addMessage(message) {
        var newMessageElement = document.createElement('div');
        var newMessageText = document.createTextNode(message);

        newMessageElement.appendChild(newMessageText);
        messagesElement.insertBefore(newMessageElement, 
          lastMessageElement);
        lastMessageElement = newMessageElement;
      }

      var socket = io.connect('http://localhost:5000');
      socket.on('serverMessage', function(content) {
        addMessage(content);
      });

      var inputElement = document.getElementById('input');

      inputElement.onkeydown = function(keyboardEvent) {
        if (keyboardEvent.keyCode === 13) {
          socket.emit('clientMessage', inputElement.value);
          inputElement.value = '';
          return false;
        } else {
          return true;
        }
      };
    </script>

  </body>
</html>

Node.js WebSocket聊天
#输入{
宽度:200px;
}
#信息{
位置:固定;
顶部:40px;
底部:8px;
左:8px;
右:8px;
边框:1px实心#EEEEEE;
填充:8px;
}
您的留言:
var messagesElement=document.getElementById('messages');
var lastMessageElement=null;
函数addMessage(消息){
var newMessageElement=document.createElement('div');
var newMessageText=document.createTextNode(消息);
newMessageElement.appendChild(newMessageText);
messagesElement.insertBefore(newMessageElement,
最后一个元素);
lastMessageElement=newMessageElement;
}
var socket=io.connect('http://localhost:5000');
socket.on('serverMessage',函数(内容){
添加消息(内容);
});
var inputElement=document.getElementById('input');
inputElement.onkeydown=函数(键盘事件){
if(keyboardEvent.keyCode==13){
emit('clientMessage',inputElement.value);
inputElement.value='';
返回false;
}否则{
返回true;
}
};

您需要使用httpd.conf文件中配置的反向代理。我使用nginx来实现这一点,因为它比apache2更快、更强大

这是我的nginx配置文件:

server {
    listen 80;
    server_name personal.dev.x.onmylemon.co.uk;

    access_log  /var/log/nginx/dev.x.oml.access.log;
    error_log   /var/log/nginx/dev.x.oml.error.log;

    location / {
        # This is the url to your node app on the localhost
        proxy_pass              http://localhost:30450;

        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_connect_timeout   150;
        proxy_send_timeout      100;
        proxy_read_timeout      100;

        proxy_buffers           4 32k;

        client_max_body_size    8m;
        client_body_buffer_size 128k;
    }
}
有一些关于在apache中设置反向代理的文档。

可能与