【发布时间】:2017-09-12 03:24:39
【问题描述】:
我是一名 iOS 开发人员,最近开始使用 Socket.IO。在我的 iOS 应用程序的生命周期中,我的服务器将作为客户端从我的应用程序接收消息,但对于一种特殊情况,服务器还需要作为客户端从 Web 浏览器接收消息。我正在测试一个非常基本的浏览器 UI,其中包括一个文本字段和一个按钮,点击该按钮,需要将一个数字代码(在文本字段中输入)发送到服务器。看起来是这样的:
<form>
Code:<br>
<input type="text" id="code" name="code"><br>
<input type="submit" id="validatebutton" value="Validate">
<script src="/socket.io-client/dist/socket.io.js"></script>
<script>
document.getElementById("validatebutton").onclick = function() {
var socket = io('http://localhost:3000');
socket.on('connect', function(clientSocket) {
clientSocket.emit('validateCode', document.getElementById("code"));
});
};
</script>
</form>
连接正常。当我运行此代码时,客户端成功连接到侦听套接字服务器。唯一的问题是事件处理程序没有被执行。我可能不太喜欢这里,但我选择的是客户端事件处理程序,它包含在 Swift SDK 中:
self.socket.on(clientEvent: .connect, callback: { (data:[Any], ack:SocketAckEmitter) in
// Do something here
})
self.socket.connect()
我只是假设 Javascript 客户端也有一个客户端事件处理程序(名为 'connect'),它在连接到服务器时由客户端接收。就像我说的,我可能会离开这里。我只是关注他们网站上发布的 Socket.IO 文档,它告诉我这样做。如果有人能告诉我我错过了什么,或者我做错了什么,将不胜感激。对不起所有的noobishness,但我真的不知道该转向哪里,因为官方文档非常模糊,而且Stack上的其他问题对我来说有点太高级了。
【问题讨论】:
标签: socket.io