Dyl*_*oss 5 php apache jquery node.js socket.io
我有几个关于在PHP上使用socket IO的问题,我是nodejs/socket io的新手,所以我知道的很少,我刚刚开始使用它,过去几天我已经到了我想要的地步在我的网站上实现这一点(截至目前我刚刚建立了一些测试示例).
问题:目前我必须将端口添加到我的localhost才能查看它并使其正常工作,显然我不能拥有它,当它是一个实时网站时,我也不能这样做当我使用php页面时(只是一直在用html做例子)如果我在我的socket io服务器上使用端口4000,我必须去:localhost:4000,但我需要能够访问:localhost:8888/mysitefolder(8888是端口为我的MAMP,对于php和所有内容)我在问题中看到过人们已经解决了这个问题,但是我无法让它为我自己工作.
这是我的代码:
chat.js
var app = require('express').createServer(),
io = require('socket.io').listen(app);
app.listen(4000);
var users = [];
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('connected');
socket.on('userID', function (userID) {
users.push(userID);
});
socket.on('message', function (message) {
socket.broadcast.emit('message-response', { data: message});
});
});
Run Code Online (Sandbox Code Playgroud)
的index.html
<title>Testing</title>
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
function mktime(){
var newDate = new Date;
return newDate.getTime();
}
function appendMessage(data)
{
$("body").append(data+"<br />");
}
var socket = io.connect('http://localhost:4000');
socket.on('connected', function () {
//select id from database in real environment
socket.emit("userID", mktime());
});
socket.on('message-response', function (message) {
appendMessage(message.data);
});
$(document).ready(function(){
$('#input').keypress(function(event) {
if (event.keyCode != 13) return;
var msg = $("#input").val();
if (msg) {
socket.emit('message', msg );
appendMessage(msg);
$("#input").val('').focus();
}
});
});
</script>
<body>
<input type="text" id="input"><br>
</body>
Run Code Online (Sandbox Code Playgroud)
我认为您的意思是您不想在客户端中硬编码端口或网址?是对的吗?
在socket.io 0.8.7中,您不需要提供它。您只需使用以下内容即可,它会被自动检测到
var socket = io.connect();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1621 次 |
最近记录: |