【发布时间】:2014-08-16 22:40:24
【问题描述】:
谁能告诉我socket.io是否仅在您的客户将使用的页面是HTML页面时才有用。
我想创建一个节点服务器,可以将事件推送到我现有的 PHP 页面。
页面不同,没有html后缀。
我阅读的所有示例都使用带有 Index.html 等的 Chatroom 示例。
我只是想知道我想做的事情是否可行。
非常感谢。
【问题讨论】:
标签: php html events socket.io push
谁能告诉我socket.io是否仅在您的客户将使用的页面是HTML页面时才有用。
我想创建一个节点服务器,可以将事件推送到我现有的 PHP 页面。
页面不同,没有html后缀。
我阅读的所有示例都使用带有 Index.html 等的 Chatroom 示例。
我只是想知道我想做的事情是否可行。
非常感谢。
【问题讨论】:
标签: php html events socket.io push
当你编写一个 php 页面时,输出是 html。希望能回答你的问题
【讨论】:
PHP 和 socket.io 一起工作。使用 html 和使用 PHP 之间的唯一区别是您将两者链接在一起的方式(通用教程显示了一种仅适用于 html 的方式,但还有另一种适用于 html 和 php 的方式)。
尝试这样的事情(来自我的类似答案,https://stackoverflow.com/a/25189436/3842050):
var socket = require('socket.io');
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
var io = socket.listen(server);
然后删除app.use 和app.get,因为这将不再需要它们来完成。然后在 server.js 的末尾添加server.listen(8000);。对于依赖项,请使用:<script src="//cdn.socket.io/socket.io-1.0.0.js"></script>。然后,要运行您的服务器,请在终端中访问它并输入node server.js。然后只需与您的客户端连接即可。此外,对于服务器中的事件,请使用:
io.on('connection', function (client) {
client.on('someEvent', function(someVariables){
//Do something with someVariables when the client emits 'someEvent'
io.emit('anEventToClients', someData);
});
client.on('anotherEvent', function(someMoreVariables){
//Do more things with someMoreVariables when the client emits 'anotherEvent'
io.emit('anotherEventToClients', someMoreData);
});
});
在您的客户端代码中:
socket.emit('someEvent', variables);
socket.on('anEventToClients', function(something){
//Code when anEventToClient is emitted from the server
});
【讨论】: