我開始玩node.js,和大家一樣,我想聊天。node.js socket.io簡單聊天
我的想法是運行node.js與端口9090中的socket.io,例如,我的客戶端html 8080端口。我的html客戶端將獨立服務。
我的服務器:
var sys = require('sys');
var express = require('express');
var io = require('socket.io');
var app = express.createServer();
app.listen(8080);
var socket = io.listen(app);
socket.on('connection', function (client) {
client.on('message', function (msg) {
socket.broadcast(msg);
});
client.on('disconnect', function() {
});
});
我的客戶:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="http://cdn.socket.io/stable/socket.io.js"></script>
<script>
$(document).ready(function() {
var socket = new io.Socket("localhost", {port: 8080});
socket.on('connect', function() {
socket.send('A client connected.');
});
socket.on('message', function (message) {
$('div#messages').append($('<p>'), message);
});
socket.on('disconnect', function() {
console.log('disconnected');
});
socket.connect();
$('input').keydown(function (event) {
if(event.keyCode === 13) {
socket.send($('input').val());
$('input').val('');
}
});
});
</script>
</head>
<body>
<input type="text" style="width: 300px;" />
<div id="messages" style="border:solid 1px #000;"> </div>
</body>
</html>
我在Ubuntu 11.04使用的是Node.js v0.4.10運行。
服務器工作正常,但客戶端無法連接,在谷歌瀏覽器的console.log上我收到此消息: XMLHttpRequest無法加載http://localhost:8080/socket.io/xhr-polling//1311465961485。 Access-Control-Allow-Origin不允許原產地http://localhost。
server.js位於/ var/www/cliente/chat/public中的文件夾中。
有什麼問題?
查找到這一點,你有類似的問題https://stackoverflow.com/questions/48198835/socket-io-404 -error/48255983#48255983 –