将Laravel(PHP)与socket.io混合
Mixing Laravel(PHP) with socket.io
我们有一个Laravel项目,但该应用程序的某些部分需要进行大量轮询,因此我们决定在该应用程序中引入socket.io。Laravel依赖于Apache,它在端口80上侦听(我们在前端使用jQuery和Bootstrap)。我们的本地测试主机名是test.localhost.com。节点服务器只是我们创建的一个在端口1000上侦听的服务器,安装了express和socket.io。
在我们的Laravel页面中,我们有以下内容:<script src="//localhost:1000/socket.io/socket.io.js"></script>
。作为测试,我们的前端有以下代码:
<script>
$(document).ready(function() {
var socket = io();
$("#msg").keyup(function(event) {
if (event.keyCode === 13) {
socket.emit($("#msg").val());
$("#msg").val('');
}
});
});
</script>
然而,当我尝试发送消息时,节点侧没有收到任何消息,但在Chrome控制台中,我注意到以下内容:
得到http://test.localhost.com/socket.io?EIO=3&transport=轮询&t=1413006253169-84404(未找到),socket.io.js的2680行出现错误。我打开文件,转到2680行,查看xhr.send(this.data);
。怎么回事?我可以不混合这两个代码库吗?为什么在导入时我使用localhost:1000(不同的主机和不同的端口),它却试图访问test.localhost.com?
好的,我明白了。当你创建连接时,socket.io假设你正在连接到localhost:80。如果没有,那么您可以明确指定您的服务器主机:
var socket = io('http://localhost:1000');
- 如何使用Socket.io将命令从客户端发送到服务器
- Socket.IO未定义变量
- Socket.io on Mozilla Rhino
- socket.io发射三次
- AngularJS$q承诺使用socket.io
- 如何知道使用socket.io订阅/取消订阅频道
- 通过socket.io发射给特定的人
- 通过socket.io从浏览器流式传输视频
- 通过node.js和socket.io向特定用户发送数据
- 如何使用socket.io在meanjs项目中配置jshint
- 如何使用Socket.io和Node.js开发大型聊天应用程序
- RangeError nodejs socket.io
- 通过node.js和socket.io在两个用户之间发送消息
- 使用socket.io更新express实时视图
- socket.io cookie解析握手错误
- 如何在同一端口上使用ExpressJS和Socket.io
- 使用cordova快速nodejs socket.io
- 通过socket.io与heroku应用程序进行通信
- Socket.io客户端在使用名称空间时忽略端口[Bug?]
- Node.js-socket.io-对io.sockets的引用突然未定义