因此,我是nodeJs和io套接字的完整入门者。我已经在服务器中同时安装了一个示例chat application
。
所以它的工作原理就像..如果我访问的http://domain.com:3000
所有程序都正常...但是可以将index.html上载到其他任何地方吗?例如http://domain.com/chat/
,在客户端文件中插入以下代码。
var connection = new WebSocket('ws://domain.com:3000');
我的客户代码
<html>
<head>
<title>Chat with socket.io and node.js</title>
<style>
#chat{
height:500px;
}
</style>
</head>
<body>
<div id="chat"></div>
<form id="send-message">
<input size="35" id="message"></input>
<input type="submit"></input>
</form>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
jQuery(function($){
var socket = io.connect();
var $messageForm = $('#send-message');
var $messageBox = $('#message');
var $chat = $('#chat');
$messageForm.submit(function(e){
e.preventDefault();
socket.emit('send message', $messageBox.val());
$messageBox.val('');
});
socket.on('new message', function(data){
$chat.append(data + "<br/>");
});
});
</script>
</body>
</html>
我的服务器代码
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
server.listen(3000);
app.get('/', function(req, res){
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function(socket){
socket.on('send message', function(data){
io.sockets.emit('new message', data);
});
});
您应该考虑将其nginx
用作反向代理。拥有nginx
出色的优势,例如能够快速提供静态文件的能力。它还经过了测试,为高并发性而构建,并使用基于事件循环的相同方法进行I / O。当您想要扩展应用程序时,可以轻松设置nginx
以在一组应用程序之间实现负载平衡。
如果要维护完整的Node.js堆栈,还可以查看一下node-http-proxy
并将其用作反向代理/负载均衡器。但是,由于需要通过userland进行文件访问,因此nodejs对于静态文件的效率不高。nginx
用于sendfile(1)
绕过用户领域并直接与内核一起使用。
您需要反向代理
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句