3
我必须为移动设备构建一个跨平台的网络应用程序,所以我使用html,css和js(然后它会通过phonegap或cordova)来开发它。使用Socket.io连接到特定的服务器IP
我的问题正在与socket.io,我的问题是:
1)我可以连接到特定的IP上的客户端?
而是在具有这样的:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
我需要这个,但是这并不工作:
<script src="my-app/folder/js/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://my.server.ip:port');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
2)在服务器端,我怎么可以创建收听到服务器连接和IP上的消息?
var io = require('socket.io').listen(80, my.server.ip);
通过这种方式,应用程序的用户将连接到我的服务器IP,我在其中托管聊天服务。
我想我不是在思考socket.io的正确逻辑。
非常感谢您的回答。我现在的问题是客户端无法加载socket.io库。我在1.2.3.4:1234上启动了一个服务器,当我连接到这个地址(我的index.html托管在Xammp htdocs文件夹中)时,控制台向我显示了这个错误“GET http://1.2.3.4:1234/socket。 io/socket.io.js“。为什么? –
你使用什么Express版本? API已从Express 2.x更改为3.x,因此答案位于从2.x迁移到3.x wiki的Socket.IO兼容性部分: Socket.IO的.listen()方法将http.Server实例作为参数。 从3.x开始,express()的返回值不是http.Server实例。要使Socket.IO与Express 3.x一起工作,请确保手动创建并将http.Server实例传递给Socket.IO的.listen()方法。 –