WebSockets connection.send not function error
WebSockets connection.send not function error
我有一个Tornado客户端应用程序,它在当前状态下运行良好: 在简化版本中,它的结构类似于下面的代码片段:
function comms(callback, newSession, connection) {
if (newSession == true) {
connection = new WebSocket('ws://localhost:9022/id/01234');
connection.onopen = function () {
alert("connected");
connection.send('hello world');
};
}
connection.onerror = function (error) {
alert('WebSocket Error ' + error);
};
connection.onmessage = function (e) {
alert('>> message from Host: ' + e.data);
callback(e.data, connection);
}
}
我可以连接,我可以检测到连接是否打开,我可以发送消息。我可以接收消息。我可以通过回调函数转发消息并返回。没关系。所有这些都是通过以下途径完成的:
connection.onXXX 事件处理程序函数。
现在我想向服务器发送一些未经请求的消息,如下所示:
function comms(callback, newSession, connection, request=false) {
if (newSession == true) {
connection = new WebSocket('ws://localhost:9022/id/01234');
connection.onopen = function () {
alert("connected");
connection.send('hello world');
};
}
connection.onerror = function (error) {
alert('WebSocket Error ' + error);
};
connection.onmessage = function (e) {
alert('>> message from Host: ' + e.data);
callback(e.data, connection);
}
if (request == true) {
connection.send("request_msg");
}
}
虽然连接是开放的,但我无法发送这样的请求消息。我收到:"connection.send 不是函数"错误。
据我了解,以某种方式发送请求必须包装到一个函数中,就像其他 connection.onXXXX 事件处理程序一样。但我没有任何这样的事件或处理程序。
如何发送消息?
您似乎需要在事件中执行此操作。
更新:
onmessage
事件是在服务器端触发的事件,因此无法在该事件处理程序中完成任何客户端处理。我建议客户端功能应该在不同的功能(而不是通信)中处理。
根据此参考教程(websockets 简介),只需从请求消息的客户端从函数中调用发送请求。
即,根据此处的教程示例,在提交表单/按下发送消息按钮时调用请求。这一切都包含在onload
函数中。
所以你需要一些可以调用套接字connection(socket).send()
函数的客户端事件或循环,只需传入文本就足够了。
这是否有帮助,或者您的应用程序处于"复杂"状态已经实现了这一目标?
相关文章:
- 直接在函数声明上使用function.prototype.bind
- jQuery:.click(function(){(element),collapse('show',f
- jQuery Error adadvisor.net
- 如果连接类型为none,则Javascript Function Only警报
- Ajax调用ERror Cross Origin REquest:在rails中自动完成大学列表
- onLoad function phonegap android
- 类型error primeFactors.for不是函数
- reducers在redux中得到Function not Object,what'it’他错了
- Array.every返回false,而不是类型error
- datatables.net ajax error - http://datatables.net/tn/7
- WIll window.addEventListener(“加载”,function(),false);等待浏览器自动填
- Error: timers.js:234 callback.apply(timer, args);
- WebSockets connection.send not function error
- bind() on promise error function - javascript
- Spring ResponseEntity & AJAX error function:无法访问响应正文内容
- jQuery for HTML to PHP - Function Error
- Node.js https.get.on("error", function(e){...} Not
- jQuery/JavaScript Undefined Function Error
- 使用$(“img”)找不到隐藏或删除图像.error(function()
- Error :Uncaught TypeError: Object function