gpt4 book ai didi

node.js - Express 4.0 中的 Heroku socket.io 示例错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:55:01 27 4
gpt4 key购买 nike

所以我正在尝试使用示例 heroku 应用程序:https://github.com/lstoll/socket-io-chat-heroku作为构建我自己的 socket.io 应用程序的模板,但我在 Express 4.0、Node 0.10.x 和 Socket.io 0.9.16 上运行。

现在的问题是,当我运行我的服务器时,一切都很好,但是当我运行我的客户端时,我得到以下错误:

 Uncaught ReferenceError: require is not defined socket.io.js:12
Uncaught ReferenceError: io is not defined chat2:2

我的相关服务器代码如下:

 var app = express();
var http = require('http');
var server = http.createServer(app);
var sio = require('socket.io');
var port = 3000 || process.env.PORT;

server.listen(port);
var io = sio.listen(server);

io.sockets.on('connection'), function(socket) {
...
});

在我的客户端,我有以下内容:我都试过了(顺便说一句,这是用 Jade 做的):

  script(src='/socket.io/socket.io.js') OR script(src='http://localhost:3000/socket.io/socket.io.js')
var socket = io.connect() OR var socket = io.connect('http://localhost:3000')

这些选项都不起作用,总是导致客户端出错。Express 4.0 有什么特别之处吗?我在这里问了一个非常相似的问题:Node.js /socket.io/socket.io.js not found express 4.0但这是让聊天使用不同模板的另一种尝试。

更新和编辑:经过一些工作后,我能够使用 express 4.0 和 socket.io 部署一个 heroku 应用程序,地址:http://salty-escarpment-7398.herokuapp.com/chat .

现在的问题是将它重新集成到我当前的应用程序中,经过大量工作后,我现在遇到错误:

 22:19:56 web.1  | GET /socket.io/?EIO=2&transport=polling 404 26ms - 1.67kb
22:19:59 web.1 | GET /socket.io/?EIO=2&transport=polling 404 25ms - 1.67kb

我有:

 io.set('transports', ['xhr-polling']);
io.set('polling duration', 10);

将其设置为 xhr-polling,我的服务器代码与上面的代码几乎相同。但是,该页面已加载,并且仅在尝试发送聊天时没有任何反应并且 404 开始出现。

谢谢

最佳答案

默认情况下,Socket.IO 1.0.4 允许轮询和 websocket 传输。你删除了轮询传输!返回轮询传输:

io.set('transports', ['websocket', 
'flashsocket',
'htmlfile',
'xhr-polling',
'jsonp-polling',
'polling']);

关于node.js - Express 4.0 中的 Heroku socket.io 示例错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23274918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com