我目前需要直接用js向本地端口发送数据,不需要接受服务器信息,也不需要长时间连接服务器,只需要把一串字符能发送到服务器。百度的websocket代码中var socket = new WebSocket("ws://127.0.0.1:60000");直接可以建立连接但是 socket.send函数不执行。首先我想问下js的websocket能不能直接向服务器发送字符串?
当然可以发送字符串,但你首先要确定你的连接是否成功。然后再去发送数据。然后不是所有浏览器都支持WebSocket的。
chrome和firefox是支持的,ie要ie10才支持。
try {
var websocket;
if (typeof MozWebSocket == 'function')
WebSocket = MozWebSocket;
if (websocket && websocket.readyState == 1)
websocket.close();
websocket = new WebSocket(Uri);
websocket.onopen = function (evt) {
alert("连接成功");
websocket.send("data");
};
websocket.onclose = function (evt) {
alert("服务已断开");
};
websocket.onerror = function (evt) {
alert('ERROR: ' + evt.data);
};
} catch (exception) {
alert('ERROR: ' + exception);
}
兄弟 websocket接收的就是字符串,你的操作没有任何问题,你可以加一下socket.open看一下是不是已经第一次握手了
Socket.readyState
只读属性 readyState 表示连接状态,可以是以下值:
0 - 表示连接尚未建立。
1 - 表示连接已建立,可以进行通信。
2 - 表示连接正在进行关闭。
3 - 表示连接已经关闭或者连接不能打开。