Node.js socket.io未连接到客户端
这是一款使用node.js和socket.io的简单聊天应用程序。此应用程序在我的本地计算机上运行良好,但在我将其上载到服务器时无法运行:请 以下是客户端的代码片段:Node.js socket.io未连接到客户端,node.js,socket.io,Node.js,Socket.io,这是一款使用node.js和socket.io的简单聊天应用程序。此应用程序在我的本地计算机上运行良好,但在我将其上载到服务器时无法运行:请 以下是客户端的代码片段: <script type="application/javascript"> var socket = io.connect(); eventHandler(socket); function eventHandler(socket) { socket.on('connec
<script type="application/javascript">
var socket = io.connect();
eventHandler(socket);
function eventHandler(socket) {
socket.on('connect', function(){
socket.emit('adduser', prompt("What's your name?"));
});
socket.on('error', function () {
console.log("Connection error"); //It works after a few second with error
});
}
$(document).ready(function(){
.....
});
</script>
你的页面似乎对我有用。在执行脚本之前,确保页面已完全加载。这是通过如下方式使用window.onload完成的:
<script>
window.onload = function() {
//Your code here
}
</script>
它似乎安装在远程服务器套接字上。IO 0.9.16不是最新的。如果您是根据这一点编写代码的,那么这可能就是它不能像您预期的那样工作的原因 尝试将Socket.IO升级到1.0此更改对我有效: 您编写了以下方法:
var socket = io.connect();
由于,我将此方法切换为:
var socket = io.connect('http://localhost:8080');
您可以用访问服务器时使用的任何ip地址替换localhost
另外,以防万一——如果您没有,那么在app.js文件中包含服务器上的连接通知会很有用。我的如下所示:
var fs=requirefs
,http=requirehttp
,socketio=requiresocket.io;
var server=http.createServerfunctionreq,res{
res.writeHead200,{内容类型:text/html};
res.endfs.readFileSync__dirname+/index.php;
}.listen8080,函数{
console.logathttp://localhost:8080;
};
socketio.listenserver.onconnection,functionsocket{
console.logCONNECTED;
socket.onmessage,functionmsg{
接收到console.logMessage:,消息;
socket.broadcast.emitmessage,msg;
};
};可能本地主机和远程服务器上安装了不同版本的Socket.IO,在我的Chrome 35.0.1916.153I上运行良好。我与服务器代理联系过。他们建议我使用“https”而不是“http”。有了“https”,它就可以工作了。谢谢大家。